۸ امرداد ۱۴۰۱
   
مقالات

موتور قواعد پلتفرم اینترنت اشیا چگونه به برنامه‌نویسی سریع‌تر کمک می‌کند؟

post cover

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

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

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

 

موتور قواعد پلتفرم تینگزپاد چیست؟

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

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

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

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

  1. پیام ورودی از داده تله‌متری یا مشخصه
  2. بلوک‌های قواعد با کارکردهای متفاوت
  3. زنجیره قواعد برای تشکیل ارتباط بین بلوک‌ها  

 

چه گردش‌کارهایی در موتور قواعد قابل تعریف هستند؟

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

  • Filter
  • Enrichment
  • Transformation
  • Action
  • Externals

 

دسته‌بندی بلوک‌های قواعد؛ Filter

برای فیلتر کردن محتوای داده ورودی بر اساس شرایط خاص و ارسال نتایج مختلف به مسیرهای مختلف، از بلوک‌های این دسته‌بندی استفاده می‌شود.

از انواع فیلترهای قابل استفاده در این بخش می‌توان به موارد زیر اشاره کرد:

  • بررسی وضعیت اخطار
  • بررسی فیلدهای موجود
  • بررسی ارتباط میان پیام و سازنده آن
  • فیلتر پیام بر اساس ژئوفنسینگ مبتنی بر GPS
  • بررسی پیام ورودی بر اساس نوع پیام
  • ارسال پیام به مسیرهای متفاوت بر اساس نوع سازنده پیام
  • نوع سازنده پیام
  • فیلتر پیام ورودی با استفاده از جاوااسکریپت
  • ارسال پیام به یک یا چندین مسیر متفاوت

 

دسته‌بندی بلوک‌ها؛ Enrichment

از بلوک‌های این دسته‌بندی برای اضافه کردن داده مازاد یا متادیتا استفاده می‌شود. هدف از افزودن این داده‌های اضافی، شناسایی بهتر پیام ورودی توسط دریافت‌کننده است. 

انواع داده‌های مازادی که می‌توان با استفاده بلوک‌های قواعد بخش Enrichment به پیام ورودی اضافه نمود، موارد زیر هستند:

  • محاسبه و اضافه کردن مقدار دلتا
  • مشخصه‌های مشتری سازنده پیام
  • فیلدهای جزئیات مشتری
  • مشخصه‌های سازنده پیام
  • فیلدهای سازنده پیام
  • تله‌متری‌های سازنده پیام
  • مشخصه‌های موجودیت‌های مرتبط به سازنده پیام
  • مشخصه‌های دستگاه‌های مرتبط به سازنده پیام
  • مشخصه‌های ناحیه کاربری (Tenant)
  • فیلدهای جزئیات ناحیه کاربری (Tenant)

 

دسته‌بندی بلوک‌ها؛ Transformation

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

انواع تغییراتی که می‌توانید با استفاده از بلوک‌های قواعد این بخش بر روی پیام ورودی انجام دهید، در زیر آورده شده است:

  • تغییر سازنده پیام
  • تغییر پیام یا متادیتای آن با استفاده از جاوااسکریپت
  • تبدیل ساختار پیام به ساختار ایمیلی

 

دسته‌بندی بلوک‌ها؛ Action

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

پیام‌ها می‌تونن از طریق بلوک‌های قواعد این بخش، عملیات‌های زیر را فعال کنند:

  • تایید دریافت پیام
  • ارسال پیام به یک صف دیگر
  • حذف اخطار
  • ایجاد اخطار
  • ایجاد ارتباط میان سازنده پیام و موجودیت مورد نظر
  • ایجاد تاخیر در پیام ورودی
  • حذف ارتباط میان سازنده پیام و موجودیت مورد نظر
  • پردازش پیام دستگاه بر اساس تنظیمات پروفایل دستگاه
  • ایجاد پیام ورودی بر اساس ژئوفنسینگ مبتنی بر GPS
  • شمارش پیام‌های ورودی
  • ارسال پاسخ به درخواست RPC دستگاه
  • ذخیره داده مشخصه
  • ذخیره داده سری زمانی
  • ذخیره پیام در قالب سفارشی
  • لاگ پیام با استفاده از جاوااسکریپت
  • ایجاد پیام به صورت دوره‌ای

 

دسته‌بندی بلوک‌ها؛ Externals

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

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

  • سرویس AWS SNS
  • سرویس AWS SQS
  • سرویس Azure IoT Hub
  • سرویس GCP Pubsub
  • صف Kafka
  • بروکر MQTT
  • صف RabbitMQ
  • ارسال پیام به سرویس خارجی از طریق Rest API
  • سرویس‌های پیامکی
  • سرویس‌های ایمیلی

 

اتصال زنجیره قواعدها به یکدیگر

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

 

شروع کار با پلتفرم تینگزپاد

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

راجع به این موضوع بیشتر می‌دانید؟ محتوای خود را برای ما ارسال کنید تا آن را با نام خودتان منتشر کنیم.