מאגר נתונים של בעלי תוכן דיגיטלי שאפשר להגדיר

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

ספרייה

הטלמטריה מתקשרת עם בעלי תוכן דיגיטלי ב-Configurable Publisher Registry דרך Binder. במקום להטמיע את ממשקי ה-AIDL באופן ידני, מומלץ מאוד להשתמש בספריית Configurable Publisher Registry הניסיונית, שהיא חלק מה-SDK לטלמטריה שלנו. הספרייה מסתירה את ממשקי AIDL ומספקת API נקי ובטוח לטיפוסים להגדרת מוציאים לאור, לפרסום נתוני טלמטריה ולניהול ההמרה של הודעות protobuf לפורמט שלהן.

מידע נוסף על השימוש בספרייה זמין במאמר ספריית Configurable Publisher Registry.

הטמעה ורישום ידניים של בעלי תוכן דיגיטלי

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

הרשמה

בשונה משירותי SDV, שיש להם מטא-נתונים משלהם, כמו מבנה ההודעה, שמוגדרים ב-VSIDL וזמינים למערכת, בעלי אתרים שמשתמשים ב-Configurable Publisher Registry צריכים לספק את המטא-נתונים שלהם באופן מפורש. את המטא-נתונים האלה מספקים באמצעות אובייקט PublisherInfo במהלך ההרשמה.

כדי לרשום את יצרני התוכן האלה, משתמשים בממשק IConfigurablePublisherRegistry AIDL. לכן, אפשר לכתוב את המפרסמים בכל שפה ש-AIDL תומכת בה, כולל Java,‏ C++‎ ו-Rust. יש שתי שיטות להוספת תובנות לממשק:

  • משתמשים ב-registerPublisher method כדי לרשום מפרסם חדש בשירות הטלמטריה:

    void registerPublisher(in PublisherInfo publisherInfo, in IConfigurablePublisher publisher)
    
  • כדי לבטל את הרישום של בעל תוכן דיגיטלי שנרשם בעבר לשירות הטלמטריה, משתמשים ב-method‏ unregisterPublisher:

    void unregisterPublisher(in @utf8InCpp String serviceName)
    

באובייקט PublisherInfo מצוין המידע הבסיסי של בעל התוכן הדיגיטלי:

שדה תיאור
serviceName שם שהמשתמש נתן לבעל התוכן הדיגיטלי. השם הזה משמש להתייחסות אליו בהגדרות של מדדים.
fileDescriptorSet google.protobuf.FileDescriptorSet (מידע נוסף זמין במאמר בנושא הודעות עם תיאור עצמי) שמכיל את מתאר ההודעה (שמופיע בשדה messageTypeName) של ההודעה שהמפרסם מפרסם ואת כל התלות הנדרשת שלה. שירות הטלמטריה משתמש במתאר ההודעה כדי לבצע דה-סריאליזציה של הנתונים שנשלחים על ידי המפרסם. מידע נוסף על יצירת המתאר במשך זמן של תהליך build זמין במאמר בנושא כלי ליצירת מתאר של Java protobuf.
messageTypeName השם המלא של הודעות ה-protobuf שהמוציא לאור מפרסם. צריך להצהיר על מתאר ההודעה של ההודעה הזו ב-fileDescriptorSet.
supportsGet מציין אם בעל התוכן הדיגיטלי יכול לספק את ההודעה האחרונה בלי להירשם אליה.

הטמעה

המוציא לאור המותאם אישית צריך להטמיע את הממשק IConfigurablePublisher על ידי מתן השיטות הבאות:

  • שירות הטלמטריה קורא ל-createSubscription כדי להירשם למפרסם אם הערך connection_type של מקור הנתונים של המפרסם הזה בהגדרת המדדים הוא SUBSCRIPTION. הארגומנט ISubscriber שמועבר למפרסם מספק שיטה sendData(in byte[] data) שבה אפשר להשתמש כדי להזרים הודעות protobuf לשירות הטלמטריה.

    IConfigurablePublisherSubscription createSubscription(in ISubscriber subscriber, in @nullable byte[] configuration)
    
  • שירות הטלמטריה קורא ל-getLatestMessage כדי לאחזר את ההודעה האחרונה של מפרסם אם הערך connection_type של מקור הנתונים של המפרסם הזה בהגדרת המדדים הוא ON_DEMAND. שירות הטלמטריה משתמש בשיטה הזו רק אם PublisherInfo של בעל התוכן הדיגיטלי מציין supportsGet = true.

    @nullable byte[] getLatestMessage(in @nullable byte[] configuration)
    

שירות הטלמטריה מגדיר את הארגומנט configuration לאפשרות configuration של מקור הנתונים בהגדרת המדדים.