مستندات ویرالینک

موجودیت‌ها و روابط آن‌ها

موجودیت‌ها (Entities) #


ویرالینک به شما امکان تعریف و مدیریت موجودیت‌های متنوعی می‌دهد که می‌توان از طریق رابط کاربری و یا REST API آن‌ها را ایجاد و مدیریت کرد. موجودیت‌های ویرالینک عبارتند از :

  • مدیر (Tenant) – مدیر همان فرد یا سازمانی است که جهت ارائه خدمات یا محصولات هوشمند به مشتری‌های خود از پلتفرم ابری ویرالینک استفاده می‌کند. منظور از “شما” همان موجودیت مدیر در این مستندات می‌باشد
  • مشتری (Customer) – مشتری فرد یا سازمانی است که از دستگاه‌ها یا خدمات شما استفاده می‌نماید. یک مشتری می‌تواند شامل چندین کاربر، دستگاه یا دارایی باشد.
  • کاربر (User) کاربران میتوانند داشبورد های اختصاص یافته را مشاهده کنند و موجودیت‌های خود را مدیریت نمایند.
  • دستگاه (Device) – موجودیت‌های ابتدایی اینترنت اشیا که اطلاعات را به پلتفرم ارسال و دستورات را از آن دریافت می‌کند. به عنوان مثال سنسورها و کلیدها.
  • دارایی (Asset) موجودیت انتزاعی اینترنت اشیا که شامل دستگاه‌ها و دارایی‌های دیگر می‌شود. به عنوان مثال کارخانه، خودرو و ساختمان
  • نمایش موجودیت (Entity Views) – اگر بخواهید تنها بخشی از دستگاه ها یا دارایی ها را با مشتری های خود به اشتراک بگذارید.
  • هشدار (Alarm) رویدادهایی که نمایانگر یک ایراد و یا نقص فنی در دستگاه‌ها، دارایی و دیگر موجودیت‌ها است.
  • داشبورد (Dashboard) مصور سازی داده‌ها و قابلیت کنترل دستگاه‌ها از طریق رابط کاربری
  • گره قاعده (Rule Node) – واحد پردازش داده‌های ورودی و رویداد‌های چرخه عمر موجودیت‌ها
  • زنجیره‌ قواعد (Rule Chains) واحد منطقی روابط گره‌های قانون

هر موجودیت دارای قابلیت‌های زیر است:

  • صفت‌ها (Attributes) داده‌های ایستا و نیمه ایستا به صورت key/value در موجودیت‌ها از قبیل شماره سریال، مدل دستگاه و نسخه سیستم عامل
  • داده‌های سری زمانی (Time-series Data) داده‌های سری زمانی که قابلیت ذخیره‌سازی، مصور‌سازی و پرس‌و‌جو دارند. این داده های را داده های تله متری (Telemetry Data) نیز می نامیم. به عنوان مثال دما، رطوبت و یا سطح باتری
  • رابطه ها (Relations) ارتباط مستقیم با دیگر موجودیت‌ها. برای مثال زیر مجموعه بودن، مدیریت کردن

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

روابط (Relations) #

روابط در ویرالینک در حقیقت ارتباط بین موجودیت های یک مدیر را مشخص می کند. هر رابطه دارای مولفه نوع است که نوع رابطه را مشخص می کند برای مثال: Contains، Manages، Supports و غیره. روابط در ویرالینک جهت دار هستند پس هر رابطه دارای مولفه جهت نیز میباشد. این روابط شبیه روابط Has-a در زبان های برنامه نویسی شی-گرایی هست.

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

دیاگرام زیر توضیح روابط بین موجودیت ها است.

ایجاد روابط و موجودیت ها با استفاده از API #

مرحله ۱: تعریف موجودیت‌ها و روابط آن‌ها #

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

برای تعریف یک دارایی توسط REST API میتوانید به آدرس /api/asset یک درخواست POST ارسال نمایید.
برای مثال:

{"name":"Field C","type":"field"}

curl -v -X POST -d @create-asset.json https://console.viralink.io/api/asset --header "Content-Type:application/json" --header "X-Authorization: $JWT_TOKEN"

توجه: برای اجرای صحیح دستور بالا متن $JWT_TOKEN را با توکن معتبر جایگزین کنید. برای اطلاعات بیشتر درباره دریافت توکن میتوانید به راهنمای REST API مراجعه نمایید.

برای تعریف یک رابطه توسط REST API میتوانید به آدرس /api/relation یک درخواست POST ارسال نمایید.
برای مثال:

{"from":{"id":"$FROM_ASSET_ID","entityType":"ASSET"},"type":"Contains","to":{"entityType":"ASSET","id":"$TO_ASSET_ID"}}

curl -v -X POST -d @create-relation.json https://console.viralink.io/api/relation --header "Content-Type:application/json" --header "X-Authorization: $JWT_TOKEN"

توجه: مقادیر $FROM_ASSET_ID و  $TO_ASSET_ID  با آیدی های معتبر دارایی جایگزین نمایید.
توجه: یک رابطه میتواند با هر موجودیتی رابطه داشته باشد. برای مثال دارایی ها با دستگاه ها یا دارایی ها با کاربران. شما میتوانید آن ها را به عنوان نتیجه از واسط REST API یا رابط کاربری تحت وب دریافت نمایید.

مرحله ۲: تخصیص صفت ها به دارایی ها #

ویرالینک به شما امکان اختصاص صفت ها به موجودیت مدیریت آن ها را میدهد. برای مطالعه بیشتر به بخش زیر مراجعه نمایید.

مرحله۳: ارسال داده های زمانی از دستگاه #

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

مرحله۴: ایجاد زنجیره قواعد برای هشدار ها #

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

مرحله۵: طراحی داشبورد #

داشبورد نمونه مزرعه کشاورزی را در داشبورد خود درون ریزی (import) نمایید.