يك موتور قانون مي تواند جهت تعيين ترتيب اجراي قوانين متضاد و برطرف نمودن آنها، استراتژي هاي متفاوتي را بكار گيرد. با ما همراه باشيد...

موتور قانون نمونه ای نرم افزاری می باشد که قوانین را مطابق با تعدادی الگوریتم اجرا می کند. یک موتور قانون مجموعه ای از حقایق می باشد که به منظور نتیجه گیری  برای راه اندازی یک یا چند عمل توسط قوانین موجود در سیستم ایجاد شده است. این قوانین به طور معمول منطق کسب و کار را به شیوه ی اعلانی که باید در محیط پیاده سازی شوند ( و تصور بر این است که به ندرت تغییر می یابند)، توصیف می کنند.  از طرف دیگر واقعیت ها، شرایط هر سیستمی که قرار است مورد بهره برداری قرار گیرد را توصیف می کنند و ممکن است که مرتب در حال تغییر باشند.

منطق یا قوانین موجود، دانش هایی هستند که غالباً بدین صورت بیان می شوند:" هنگامی که برخی از شرایط بدرستی ارزیابی می شوند، پس می توان برخی از وظایف را انجام داد".

یک سیستم با حجم بالایی از قوانین و حقایق ممکن است با صحت قوانین در مورد همان حقایق خاتمه یابد؛ در چنین حالتی گفته می شود که قوانین دارای مغایرت می باشند. یک موتور قانون می تواند جهت تعیین ترتیب اجرای قوانین متضاد و برطرف نمودن آنها، استراتژی های متفاوتی را بکار گیرد.

 

 

 

روش های اجرایی موجود در موتور قانون

- زنجیره رو به جلو: این روش "داده محور" می باشد. موتور قانون با درج یا بروزرسانی حقایق، از حقایق در دسترس و قوانین استنباطی جهت استخراج حقایق بیشتر به منظور تحقق هدف استفاده می کند؛ یعنی درست در جایی که یک یا چند قانون به صورت هم زمان درست خواهند بود و برای اجرا برنامه ریزی خواهند شد. با این حساب، کار موتور قانون با حقایق شروع می شود و با نتیجه گیری پایان می یابد.

- زنجیره رو به عقب: روشی "هدف محور" یا استنباطی می باشد که با زنجیره رو به جلو وارونه می گردد. زنجیره رو به عقب با نتیجه گیری یا لیستی از اهداف آغاز می گردد؛ یعنی همان چیزی که موتور برای کسب آنها در تلاش است. در صورتی که دستیابی به این اهداف میسر نباشد به جستجوی اهداف فرعی می پردازد که حصول این اهداف، دستیابی به اهداف فعلی را امکان پذیر خواهد ساخت. موتور این فرایند را تا زمانی ادامه می دهد که نتیجه گیری ابتدایی ثبت گردد و یا هدف فرعی دیگری وجود نداشته باشد.

 

تفاوت بین موتور قانون و فرایند از چه قرار می باشد؟

یک قانون بطور کلی در تضاد یک فرایند می باشد؛ زیرا:

فرایندهای کسب و کار، نوع کاری که کسب و کار انجام می دهد را مشخص می سازند.

قوانین کسب و کار، تصمیماتی که کسب و کار اتخاذ می کند را نمایان می سازند.

یک موتور قانون ممکن است مفسر بیانیه پیچیده " اگر و سپس" به شمار آید. تفسیر بیانیه " اگر و سپس"، قوانین نامیده می گردند.

 

به عنوان مثال، اگر بخش هایی از قوانین دارای شرایطی مانند ( account.getMoney() < 0) باشند؛ سپس بخش هایی از قوانین اعمالی مانند (sendWarning(account)) را شامل می گردند.

ورودی های یک موتور قانون، متشکل از اجرای قانون و برخی اشیاء داده ای می باشند. خروجی های یک موتور قانون نیز توسط ورودی ها ایجاد می گردند و احتمالاً اشیاء داده ای ورودی اصلی به همراه اصلاحات ممکن، اشیاء داده ای جدید و اثراتی جانبی مانند ارسال ایمیل ( " از خرید شما متشکریم" )، را شامل می گردند.

قوانین در یک موتور قانون زنجیره رو به جلو ذخیره می گردند، بعبارت دیگر موتور نمونه ای از چرخه اجرایی را پیاده سازی می کند که اجازه دهد عمل موجود در یک قانون تحقق شرایط سایر قوانین را باعث گردد. به این ترتیب ، احتمالاً آبشاری از قوانین فعال می شود و هر عمل قانونی اجرا می گردد. موتورهای قانون زنجیره رو به جلو، جهت مشکلاتی مناسب هستند که نیازمند نتیجه گیری سطح بالایی از حقایق ورودی ساده باشند.

 

 

 

مفهوم قانون

همانطور که مشاهده می کنید یک فایل قانون بر پایه ی دو مفهوم اصلی می باشد؛ قوانین و حقایق.

- قوانین (Rules): عبارات اعلانی حاکم براجرای فرآیندهای کسب و کار را شامل می گردد. قانون از شرط و عمل تشکیل شده است. شرایط ارزیابی می شوند و اگر این ارزیابی درست انجام گیرد، موتور قانون اقدام به انجام یک یا چند عمل می کند.

- حقایق (Facts): حقایق داده هایی هستند که قوانین بر اساس آنها عمل می کنند. در مثالی که پیشتر به آن اشاره شد پول موجود، واقعیت می باشد.

 

فواید موتورهای قانون

استفاده از قوانین، مزیت های فراوانی برای برنامه های کسب و کار به همراه دارد.

- انعطاف پذیری بیشتر: حفظ  قوانین به صورت دانش محور، انطباق آسان تصمیمات را هنگام تغییرآنها مهیا می سازد.  

- فهم آسان: درک قوانین بسیار آسان تر از کُد رویه می باشد و به همین خاطرمی تواند جهت برطرف نمودن خلاء بین تحلیل گر کسب و کار و توسعه دهندگان، سودمند واقع شود.  

- کاهش پیچیدگی: هنگام جاسازی بسیاری از نقاط تصمیم گیری در کُدهای رویه ، تبدیل برنامه به کابوسی شبانه بسیار آسان می باشد. از طرف دیگر با در اختیار داشتن قوانین، کنترل پیچیدگی های فزاینده بهتر انجام می شود چرا که نمایش ثابتی از قوانین کسب و کارمورد استفاده قرار می گیرد.

- قابلیت استفاده مجدد: با حفظ قوانین در یک مکان، استفاده ی مجدد قوانین کسب و کاربیشتر فراهم می گردد. از طرفی آیین کُد روند در اغلب مواقع به اعمال تغییرات غیرضروری قوانین پایه می پردازد که در این صورت استفاده ی مجدد از آنها در سایر زمینه ها بسیار دشوار می باشد.

از طرفی بکارگیری موتور قانون در صورتی که منطق کسب و کارایستا باشد و قوانین کسب و کارتا حدی آسان و محدود باشند،  احتمالاً غیرضروری به نظر می آید.

 

منبع:  


به اشتراک بگذارید :



 ثبت نظر