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

קריאת העסקה

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

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

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

כיוון: יוזם -> יעד

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

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

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

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

כיוון: יעד -> מבצע הפעולה

בפעולה הזו היעד משיב עם:

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

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

כיוון: Target -> Initiator או Initiator -> Target

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

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

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

הגבלות קריאה

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

פעולת התגובה לסטטוס היא Unicast בלבד, ואי אפשר ליצור אותה בתגובה להעברה קבוצתית.

עסקת מינוי

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

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

כיוון: יוזם -> יעד

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

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

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

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

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

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

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

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

כיוון: יעד -> מבצע הפעולה

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

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

הגבלות על מינויים

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