نوآوری در مدیریت برای توسعه پایدار

Kolnegar Private Media (Management Innovation for Sustainable Development)

7 اردیبهشت 1403 9:38 ق.ظ

موتورهای تصمیم گیری کسب و کار

بخش اول گزارش-  جفری وایزمن19 ژوئن 2006

https://www.infoq.com/articles/Rule-Engines/

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

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

چرا باید به موضوع اهمیت بدهم؟

برخی از شما قبلاً به استفاده از یک موتور قانون فکر کرده اید و به دنبال مشاوره عملی در مورد نحوه استفاده خوب از آن هستید: الگوها و ضد الگوها ، بهترین شیوه ها و تله های آن چیست .

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

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

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

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

Rule Engine چیست؟

موتور قانون ، در اصل ، مکانیزمی برای اجرای “قوانین تجاری” است. قوانین کسب و کار عبارتهای ساده ای از کسب و کار هستند که تصمیمات تجاری را به نوعی کدگذاری می کنند ، که اغلب به صورت ساده یا مشروط بیان می شوند.به عنوان مثال ، یک قانون تجاری برای یک سیستم بیمه فرضی ممکن است بصورت زیر باشد .

در صورت داشتن یک ماشین و راننده ، در صورت رعایت همه شرایط زیر:

  • ماشین قرمز است
  • ماشین در کلاس اسپرت است
  • راننده مرد است
  • راننده بین 16 تا 25 سال سن دارد

آنگاه پیامد آن افزایش 20 درصدی حق بیمه است.

این ها قوانین تجاری جدید نیستند بلکه منطق تجاری هستند که هسته بسیاری از برنامه های نرم افزاری تجاری می باشند . اگر توسعه دهنده هستید ، این قوانین را بارها و بارها به عنوان زیرمجموعه ای از الزامات بیان کرده اید. آنها اظهاراتی مانند “تخفیف بیست درصدی برای سفارشات بیش از سه مورد در روزهای دوشنبه” یا “ما مردان 16 ساله را در موتورهای سوپراسپرت بیمه نمی کنیم” هستند .

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

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

چطورکار می کنند؟

ماهیت اصلی موتور قانون از الگوریتم محرک آن ناشی می شود. برخی از “موتورهای قانون” ساده به سادگی منطق رویه را به ترتیبی که شما تعیین می کنید به زنجیره تبدیل می کنند. اکثر آنها الگوریتم های تطبیق پیچیده ای مانند Rete ، Treat و Leaps ارائه می دهند تا حقایق را با قوانین مرتبط کنند ، تعیین کنند که کدام قوانین به چه ترتیبی باید اجرا شوند  .

Drools ، مانند بسیاری از رقبای خود ، از Rete استفاده می کند ، الگوریتم تطبیقی ​​که توسط چارلز فورگی توسعه یافته است. اگرچه بررسی دقیق Rete خارج از حوصله این مقاله است ، اما شکل ساده شده اش این است.

: Rete  درختی از قوانین را می سازد. حقایق در گره های سطح بالا  به عنوان پارامترهای قوانین وارد درخت می شوند و در صورت مطابقت با شرایط تا رسیدن به گره های در سطح برگ ،یعنی پیامدهای قانون در شاخه های درخت حرکت می کنند.

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

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

چگونه قوانین را می نویسید؟

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

برخی از موتورها از ابزارهای گسترده ای برای ایجاد و مدیریت قوانین ، از جمله محیط توسعه قوانین پشتیبانی می کنند ، در حالی که برخی دیگر از ابزارهای موجود استفاده می کنند ، از IDE ها گرفته تا ویرایشگرهای متن و صفحات گسترده.

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

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

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

این ویژگیها تعاملات ظریفی ایجاد می کنند که می تواند نتایج قدرتمندی داشته باشد ، حتی اگر حقایق و قوانین خود ساده باشند. غالباً ، این ویژگی ها ارزش بیشتری را برای یک زبان برنامه نویسی با هدف کلی ارائه می دهند.

سرانجام ، برخی از افراد به دنبال موتورهای قانون خاصی برای اجرای یک الگوی خاص هستند ، برای مثال  برون سپاری منطق کسب و کار ، حمایت از تغییرات سریع یا توانمندسازی کاربران تجاری. این رویکردها با جزئیات بیشتری مورد بحث قرار خواهد گرفت.

برای چه چیزهایی خوب نیستند؟

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

مثال: نقل قول بیمه خودرو

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

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

معماری  موتور قانون

روش دقیق ادغام یک موتور قانون با معماری یک سیستم جدید یا موجود با ویژگی های یک موتور قانون خاص متفاوت است.

سرورها و جاسازی

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

عملکرد موتور قانون

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

موتورهای قانون یک روش عمومی برای انتخاب و تنظیم قوانین تجاری هستند و بعید نیست که به سرعت به اندازه یک راه حل کاملاً سفارشی باشند ، اما یک راه حل معماری خوب نباید باعث کاهش عملکرد قابل توجهی در برنامه کلی شود.

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

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

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

مثال معماری

معماری یک راه حل موتور قانون برای ایجاد نقل قول برای بیمه خودرو ممکن است چیزی شبیه به این باشد:

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

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

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

اگر موتور قانون Drools باشد ، ایجاد نقل قول ممکن است از این دنباله پیروی کند:

در این مورد ، قوانین همانطور که توسط مورد بارگذاری شده RuleBase نشان داده شده است ، به همان شکل که توسط مورد WorkingMemory نشان داده شده است ، به یک حالت کشیده می شوند. وضعیت فعلی در حافظه فعال وارد می شود ، قوانین از بین می روند و هر خروجی حاصل بازگردانده می شود. همین الگو را می توان برای یک سیستم نقل بیمه نامه (در مورد ارائه دهنده بیمه) یا برای یک سیستم چند قیمتی (در مورد یک کارگزار) استفاده کرد.

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

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

قوانین الگوهای موتور و ضد الگوها

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

خارجی سازی منطق کسب و کار

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

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

موتورهای قانون ای راهی مناسب برای بیرونی سازی موارد کسب و کار هستند و می توانند مزایایی را که این تیم ها به دنبال آن هستند داشته باشند. با این وجود ، این درست است که همین مزایا را می توان از راه های دیگر نیز به دست آورد ، بنابراین مهم است که مزایای این روش را در مقایسه با جایگزین ها بسنجید.

اگر تنها دغدغه شما این است که برخی موارد کاری را از برنامه جدا کنید ، استفاده از موتور قانون احتمالاً ساده ترین راه برای انجام این کار نیست. پیاده سازی های مشخص فرایندها را می توان در زمان اجرا بارگیری و بارگیری مجدد کرد. اگر دغدغه شما اجتناب از چرخه تدوین صریح است ، استفاده از زبان های اسکریپت نویسی یا فن آوری های ترکیب مجدد پویا مانند Janino را در نظر بگیرید.

بسیاری از این گزینه ها در مقایسه با موتورهای معمولی به سرمایه گذاری کمتری در زمان ، انرژی و هزینه های مجوز نیاز دارند ، اگرچه موتورهای قانون در زمینه های دیگر چیزهای زیادی برای ارائه دارند.

سرعت تغییر

در برخی از محیط ها ، قوانین کسب و کار اغلب و حتی به طور مداوم تغییر می کند. برخی از تیم ها به دنبال استفاده از موتورهای قانون برای حمایت از این نوع تغییرات هستند.

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

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

در نهایت ، موتورهای قانون موارد جادویی برای حمایت از تغییرات نیستند ، اما می توانند کمک کنند. اگرچه بسیاری از این رویکردهای مشابه را می توان با یا بدون یک موتور قانون اتخاذ کرد ، اما اجرای این رویکردها به صورت دستی ممکن است به اندازه استفاده از ابزارهایی که دارای یک موتور قانون خاص هستند ، مقرون به صرفه نباشد.

همانطور که در برون سپاری بخشی از کسب و کار ، اگر سرعت تغییر تنها دغدغه شما است ، ممکن است بخواهید ابزارهای توسعه سریع و/یا زبان های برنامه نویسی را در نظر بگیرید ، که ممکن است به سرمایه گذاری کمتر از زمان ، زمان و پول نسبت به موتورهای معمولی نیاز داشته باشد.

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

کاربران تجاری قوانین تجاری را توسعه می دهند

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

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

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

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

در برخی از پروژه های اخیر ما ، ما توانسته ایم از “جداول تصمیم گیری” Drools به نحو احسن استفاده کنیم. توسعه دهندگان جاوا حوزه کسب و کار و برنامه ای را که تصمیمات تجاری را به قوانین تفویض می کند ، ایجاد و تقویت می کنند و مجموعه ای از ساختارهای جدول تصمیم گیری را در چندین صفحه کار Excel ایجاد کرده اند که مرزهای راه حل را تشکیل می دهند. اعضای تیم از جنبه تحلیلی کسب و کار می توانند قوانین را با پارامتر بندی این جداول برای دستیابی به اهداف تجاری ایجاد کنند ، مانند موارد زیر:

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

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

کنترل جریان را کنار بگذارید

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

بسیاری از موتورهای قانون اجازه می دهند تا روند انتخاب و سفارش قوانین تحت تأثیر قرار گیرد. Drools مجموعه ای از استراتژی های حل تعارض و ویژگی های قانون مانند گروه های برجسته و دستور کار را برای کنترل آنها ارائه می دهد. این نوع گزینه ها به شما این امکان را می دهند که کنترل جریان کلی را به قوانین بسپارید ، اما هرگونه کنترل لازم را برای تحقق منطق کسب و کار خود یا تنظیم رویکردی که موتور از آن استفاده می کند ، اعمال کنید.

قوانین به عنوان کد رویه

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

    چگونه فقط یک قانون را اجرا کنم؟

    آیا می توانم قوانینی را که می خواهم اجرا کنم ، به ترتیب لیست کنم؟

مهم است بدانیم که انجام این کارها ممکن است ، اما همیشه توصیه نمی شود. به عنوان مثال ، در Drools ، می توانید کنترل کنید که کدام قوانین با استفاده از فیلترهای فعال سازی اجرا می شوند و می توانید ترتیب را با استفاده از حل تعارض کنترل کنید. در برابر این گزینه ها مقاومت کنید: گاهی اوقات آنها ضروری هستند ، اما دستیابی به این کنترل ها خیلی زود به عنوان یک واکنش تکان دهنده به پارادایم های رویه ای قدیمی بسیار آسان است.

محصول مقیاس پذیر

هنگام جمع آوری حقایق برای تأمین موتور اصلی ، فراموش کردن ترکیبات درگیر آسان است و وقتی تعداد کمی از حقایق فردی با تعداد کمی از قوانین ترکیب شود ، تعداد حاصل از ترکیبات می تواند به سرعت شگفت آور شود.

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

اگر مقیاس آنچه را که از موتور قانون می خواهید مقایسه کنید در نظر نگیرید ، ممکن است قوانینی مانند این را بنویسید و دریابید که عملکرد راه حل شما آن چیزی نیست که انتظار داشتید.

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

بازگشت

در هر نوع کنترل جریان با نرم افزار ، خودگردانی می تواند یک مشکل باشد. به عنوان مثال ، اگر یک قانون مبنای واقعیت را تغییر دهد ، آیا این تغییر باعث می شود که قانون دوباره اجرا شود و منجر به یک حلقه بی نهایت شود؟

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

راه حل هایی وجود دارد – در برخی موارد ، به سادگی یادآوری ، هنگام تعریف یک قانون ، که نباید خود باعث ایجاد آن شود. Drools دارای ویژگی “no loop” برای این مورد است. در بسیاری از موارد ، بهترین راه حل این است که اطمینان حاصل کنید که قوانین به گونه ای طراحی شده اند که خودشان را تحریک نمی کنند.

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

این نوع تصمیمات طراحی زمانی طبیعی می شوند که شما زمان کافی را صرف تدوین قوانین مربوط به یک موتور قانون کرده اید ، اما اگر تجربه شما در کد رویه ای یا شی گرا بوده باشد ، فوراً مشخص نمی شود.

کار با اجزای کوچک  

هنگام استفاده از موتورهای قانون برای اولین بار ، استفاده از جزئیات قوانین و داده هایی که آنها را به بازگشت به الگوهای برنامه نویسی معمولی سوق می دهد وسوسه انگیز است.

  • نوشتن قوانین بزرگ و پیچیده که کنترل جریان را در داخل قانون به جای موتور قانون حرکت می دهد.
  • ارائه نمودارهای مورد بزرگ به موتور قانون ، پیمایش نمودار مورد در خود قانون به جای استفاده از حقایق کوچک و اجازه دادن به موتور قانون برای انتخاب حقایق مناسب.

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

  • قوانین کوچک ، ریز دانه و ساده ایجاد کنید.
  • قوانین را با حقایق کوچک و ریز ریز و ساده ارائه دهید.

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

موتور قانون چیست؟

What is a rule engine ?

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

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

    Forward Chainingاتصال زنجیره ای رو به جلو یک روش “داده محور” است. هنگامی که حقایق درج یا به روز می شوند ، موتور قانون از حقایق موجود و قواعد استنباطی برای استخراج حقایق بیشتر تا رسیدن به هدف استفاده می کند ، جایی که یک یا چند قانون منطبق به طور همزمان صادق بوده و برای اجرا برنامه ریزی شده اند. از این رو موتور قانون با حقایق شروع می شود و با نتیجه گیری به پایان می رسد.

  اتصال زنجیره ای رو به عقب  ، یک روش “هدف محور” یا استنتاج است که با اتصال زنجیره ای رو به جلو برعکس می شود. زنجیر چرخشی عقب با نتیجه گیری یا لیستی از اهدافی که موتور برای برآوردن آنها تلاش می کند شروع می شود. اگر نتواند این اهداف را برآورده کند ، به دنبال اهداف فرعی است که بتواند آنها را برآورده کند و به برآوردن بخشی از اهداف فعلی کمک کند. موتور این روند را تا زمانی ادامه می دهد که یا نتیجه اولیه ثابت نشود یا دیگر وجود نداشته باشد

تفاوت بین موتور Rule و یک فرایند چیست؟

یک قانون با یک فرایند متفاوت است زیرا:

  • فرایندهای تجاری نشان دهنده روال کاری است که کسب و کار انجام می دهد
  • قوانین تجاری نشان دهنده تصمیماتی است که کسب و کار انجام می دهد

یک موتور قانون ممکن است به عنوان یک مفسر پیچیده در صورت یا سپس در نظر گرفته شود. گزاره های if/then که تفسیر می شوند ، قوانین نامیده می شوند.

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

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

نحوه ایجاد برنامه های کاربردی IoT با استفاده از Rules Engine

سواروپ اوگو

اینترنت اشیاء برای ماندن بوجود آمده است. این امر به دلیل پیشرفت در بسیاری از بخشهای مرتبط مانند صنعت 4.0 در محیطهای صنعتی و فرآیندهای اتوماسیون خانگی یا اداری است. در سراسر این صنایع ، اینترنت اشیا و نرم افزارهای سخت افزاری و نرم افزاری مربوطه راه حل هایی را برای توسعه محیط های به هم پیوسته ارائه می دهند که در آن داده ها جمع آوری ، تجزیه و تحلیل و برای دستیابی به اهداف مشترک مورد استفاده قرار می گیرند.

هر فرایند پیاده سازی اینترنت اشیا از سه عامل مهم تشکیل شده است. اینها هستند:

  • سخت افزار اینترنت اشیا برای استقرار فیزیکی
  • نرم افزار اینترنت اشیا با قابلیت درک ، استدلال ، یادگیری و انجام اقدامات مربوطه
  • شبکه اینترنت اشیا که متشکل از سیستم سایبری فیزیکی متصل به هم است

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

اما برنامه های کاربردی IoT شناختی دقیقاً چیست؟

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

اگر قرار است اتوماسیون صنعتی کامل یا اتوماسیون داخلی به دست آید ، برنامه های کاربردی IoT شناختی باید توسط فروشندگان و شرکت هایی که به دنبال استفاده از قدرت سیستم های متصل هستند توسعه داده شود. امروزه تقریباً 70 درصد از طرحهای اینترنت اشیا شکست می خورند. این امر به این دلیل است که در حالی که بسیاری می توانند یک محیط دستگاههای متصل ایجاد کنند ، اما انجام محیط شناختی نیاز به تلاش هوشمندانه و یک برنامه سیستم متخصص دارد که از منطق استفاده می کند. اینجاست که یک موتور قوانین وارد کار می شود.

موتور Rules چیست؟

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

سه جزء اصلی وجود دارد که چارچوب موتور قوانین را تشکیل می دهند. این اجزا عبارتند از:

    پیام – این به رویداد ورودی اشاره می کند که عموماً از سخت افزار اینترنت اشیا ناشی می شود. این رویدادها می توانند داده های حسگر ، درخواست های RPC یا رویدادهای چرخه عمر/چرخه کار دستگاه/تجهیزات باشند.

    گره قانون – گره قاعده منطقی را ارائه می دهد که موتور قوانین با آن کار می کند. گره قاعده شامل دو عامل است که با پیام دریافتی شرایط تعیین می شوند و عمل با منطق تعیین می شود.

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

یک مثال اساسی در دنیای واقعی از قوانین موتور را می توان از سناریویی در کارخانه تولیدی مشاهده کرد. در این سناریو ، دستگاه مجهز به سنسور دما تنها زمانی مجاز به تعمیر و نگهداری است که دمای آن به علامت 70 درجه برسد. یک موتور قوانین داده های دما را از سنسور جمع آوری می کند و منطق “اگر-سپس” را برای داده های جمع آوری شده اعمال می کند.

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

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

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

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

چگونه موتورها به طور خودکار برنامه های کاربردی IoT را فعال و فعال می کند؟

در قدم اول ، موتور قوانین به شما این امکان را می دهد تا قوانین خاصی را که در برنامه های کاربردی اینترنت اشیا به آن نیاز دارید ، تدوین کنید. قواعد ساختمانی موتورها ساده اند که مخاطبین غیر فنی را نیز قادر می سازد از آنها استفاده کنند. بنابراین ، آنها اساس توسعه برنامه های کاربردی IoT شناختی را به روشهای زیر فراهم می کنند:

  • یک مکان ذخیره سازی متمرکز برای برنامه های کاربردی IoT – موتور قوانین به عنوان یک مکان ذخیره سازی متمرکز برای قوانین مورد نیاز برنامه های مختلف اینترنت اشیاء شما عمل می کند. این بدان معناست که هر مورد یا دستگاه استفاده از اینترنت اشیا ، صرف نظر از تنوع ، می تواند به این قوانین دسترسی داشته باشد ، در صورت نیاز از آنها استفاده کرده و مجدداً از آنها استفاده کند. این امر همچنین نیاز به نوشتن مداوم کد برای برنامه های خاص اینترنت اشیا را از بین می برد.
  • برنامه های کاربردی اینترنت اشیاء با عملکرد بالا را فعال می کند-برنامه های کاربردی اینترنت اشیاء باید بتوانند در زمان واقعی اقداماتی را انجام دهند که فرآیندهای خودکار برای عملکرد نیاز دارند. موتور قوانین این امکان را از طریق تطبیق الگوی مبتنی بر منطق و الگوریتم های حل تعارض بصری که در آن ادغام شده اند ، ممکن می سازد.
  • همه کاره برای مدیریت نیازهای در حال تغییر – با استفاده از موتور قوانین ، نیاز به نوشتن کد برای الزامات مکرر در حال تغییر منسوخ شده است. توانایی به سادگی به روز رسانی قوانین ، کاربردهای اینترنت اشیا را با نیازهای متغیر افزایش می دهد.
  • فعالسازی زمان واقعی را فعال می کند-انجام اقدامات مشخصه یک برنامه کاربردی IoT شناختی است و موتور قوانین این امر را از طریق هشدارها و اعلان های ایمیل که هنگام رخداد رویدادهای مهم در دنیای واقعی یا در محیط هایی که یک برنامه IoT مانیتور می کند ، ایجاد می شود ، فعال می کند.
  • داده های اینترنت اشیا را مدیریت و تجمیع می کند – شبکه های اینترنت اشیا با چندین دستگاه اینترنت اشیا مجموعه داده های بزرگی تولید می کنند که برای دریافت بینش موجود در آنها باید پردازش شوند. موتور قوانین به برنامه های اینترنت اشیا این امکان را می دهد تا داده های جمع آوری شده را با توجه به قوانین مشخص پردازش و تجزیه و تحلیل کنند. بنابراین ارائه بینش مورد نیاز برای بهینه سازی عملیات خاص انجام می شود .

نکات پایانی

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

آیا این نوشته برایتان مفید بود؟

مطالب مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *