עסקאות שנקראו

קריאת העסקה

אחד מתרחישי השימוש הראשונים באינטראקציה עם צמתים ב-Matter הוא קריאה של מאפיין מצומת אחר, כמו ערך טמפרטורה מחיישן. באינטראקציות כאלה, הפעולה הראשונה שחייבת לבצע היא 'פעולת קריאת בקשה'.

רצף הפעולות של עסקת קריאה
איור 1: קריאת העסקה

פעולת קריאה של הבקשה

כיוון: מאתחל -> יעד

בפעולה הזו, המאתחל שולח שאילתה על יעד שמספק:

  • בקשות למאפיינים: רשימה של אפס מאפיינים או יותר מהמאפיינים של היעד. הרשימה הזו מורכבת מאפס נתיבים או יותר למאפיינים המבוקשים של היעד.
  • בקשות לאירועים: רשימה של אפס נתיבים או יותר לאירועים המבוקשים של היעד.

אחרי שפעולת בקשת הקריאה תתקבל על ידי היעד, המערכת תרכיב פעולת דיווח של נתוני דיווח עם המידע המבוקש.

פעולה לגבי נתוני דיווח

כיוון: יעד -> מאתחל

בפעולה הזו, היעד משיב באמצעות:

  • דוחות מאפיינים: רשימה של אפס או יותר מהמאפיינים המדווחים שהתבקשו בקריאת הפעולה.
  • דוחות אירועים: רשימה של אפס אירועים מדווחים או יותר.
  • Suppress Response: דגל שקובע אם הסטטוס של התגובה לפעולה הזו אמור להיחסם.
  • Subscription ID: אם הדוח הזה הוא חלק מעסקה של הרשמה, הוא צריך לכלול מספר שלם לזיהוי טרנזקציית המינוי.

פעולת התגובה לסטטוס

כיוון: יעד -> מאתחל או מאתחל -> יעד

כברירת מחדל, אחרי שיוזם ההזמנה מקבלים את הנתונים המבוקשים, הוא צריך ליצור פעולת תגובת סטטוס. הפעולה הזו נשלחת מיוזם ההודעה על קבלת הנתונים שדווחו. אם מוגדרת תגובת הדגל של הסטטוס 'ההסתרה', אסור ליוזם לשלוח את פעולת תגובת הסטטוס.

אחרי שפעולת תגובת הסטטוס נשלחת על ידי המאתחל, או אחרי שמתקבלת פעולת נתוני דיווח על ידי היוזם כשהדגל 'ביטול התגובה' מופעל, שאילתת הקריאה/דיווח מסתיימת.

השדה Status Response פשוט מכיל את השדה status, שמציין את הצלחת הפעולה או את קוד הכשל.

הגבלות קריאה

פעולת הקריאה של הבקשה ופעולת נתוני הדיווח הן Unicast בלבד. בנוסף, יכול להיות שהנתיבים של הבקשות האלה לא יטרגטו קבוצת צמתים.

פעולת התגובה לסטטוס היא Unicast בלבד ואי אפשר ליצור אותה כתגובה ל-groupcast.

עסקת מינוי

רצף הפעולות של עסקת מינוי
איור 2: עסקת מינוי

פעולה של בקשת הרשמה

כיוון: מאתחל -> יעד

בנוסף לפעולה בודדת של בקשת קריאה, המאתחל יכול גם להירשם לעדכונים תקופתיים של מאפיין או אירוע. לכן, אותה פעולה של נתוני דיווח יכולה להיווצר כתוצאה מעדכונים תקופתיים של הנתונים שיתבצעו אחרי עסקת מינוי.

אינטראקציה עם מינוי יוצרת קשר בין שני צמתים, שבו היעד יוצר מדי פעם פעולות על נתוני הדיווח ליוזם. יוזם המודעה הוא המנוי והיעד הוא בעל התוכן הדיגיטלי.

פעולת בקשת הרשמה כוללת:

  • מרווח זמן מינימלי: המרווח המינימלי בין דוחות.
  • תקרה מקסימלית: המרווח המקסימלי בין דוחות.
  • דוחות המאפיינים: רשימה של אפס או יותר מהמאפיינים המדווחים שהתבקשו בבקשה לקריאת הפעולה.
  • דוחות אירועים: רשימה של אפס אירועים מדווחים או יותר.

אחרי בקשת ההרשמה, היעד משיב למאתחל באמצעות פעולת דיווח על נתוני הדיווח, שמכילה את האצווה הראשונה של הנתונים המדווחים: הנתונים שפורסמו משתנים.

לאחר מכן, המאתחל מאשר את הפעולה של נתוני הדיווח עם פעולת תגובת סטטוס שנשלחה ליעד. אחרי שהיעד מקבל פעולת תגובת סטטוס שמדווחת שאין שגיאות, הוא שולח פעולת 'הרשמה'.

בהמשך, היעד ישלח פעולת דיווח על נתוני דיווח מדי פעם במרווח הזמן שהוסכם, ויוזם ההזמנה יגיב לפעולות האלה עד שהמינוי יאבד או יבוטל.

פעולת 'הרשמה' ותגובה ל'הרשמה'

כיוון: יעד -> מאתחל

זו הפעולה האחרונה בעסקת המינוי, והיא מסיימת את התהליך. היא כוללת:

  • Subscriptions ID: מספר שלם שמזהה את המינוי.
  • המרווח המינימלי: המרווח המינימלי הסופי, שנקבע בין הדוחות.
  • Max Interval: המרווח המקסימלי הסופי, שנקבע בין הדוחות.

הגבלות על הרשמה

  • פעולת הבקשה להרשמה ופעולת התגובה להרשמה הן פעולות של Unicast בלבד.
  • כל הפעולות על נתוני הדיווח באינטראקציה עם מינוי צריכות להיות עם אותו מזהה מינוי.
  • אם המנוי לא יקבל פעולה על נתוני דיווח בטווח הזמן המקסימלי שהוסכם בין הפעולות, המינוי יסתיים.
  • כתוצאה מהכלל הקודם, בעל התוכן הדיגיטלי יכול לסיים את האינטראקציה עם המינוי על ידי הפסקת השליחה של הפעולות התקופתיות של נתוני הדוחות.
  • המנוי יכול לסיים את האינטראקציה עם המינוי באמצעות תגובה לפעולת הדיווח על נתוני קוד הסטטוס INACTIVE_SUBSCRIPTION.