תחילת העבודה עם שיתוף חבילת הגלישה

הסברים על המונחים

  • GTAF: פונקציית האפליקציה של Google Traffic. שירות של Google שמשתמש ב-Data Plan Sharing API ומקיים אינטראקציה עם DPA בשם אפליקציות Google. אפליקציות של Google יכולות לבצע שאילתה על GTAF כדי לקבל מידע על תוכנית הנתונים של המשתמש. לחלופין, אם האפליקציות של Google נרשמות ב-GTAF, GTAF יכול לשלוח עדכונים לגבי תוכנית הנתונים של המשתמש.
  • MSISDN: מספר מאגר של מנוי בינלאומי לנייד, מספר שמזהה באופן ייחודי מינוי ברשת סלולרית. נקרא מספר טלפון.
  • נקודת סיום של CPID: שירות המיושם על ידי מפעילים של רשת סלולרית שיוצר מזהה תוכנית ספק (CPID), שניתן להשתמש בו כדי לחפש את פרטי תוכנית הנתונים של המשתמש. CPID מאפשר לאפליקציה להריץ שאילתה על פרטי תוכנית הנתונים של המשתמש בלי לגשת ל- MSISDN של המשתמש. ריכזנו כאן הסבר על התהליך ליצירת מזהי CPID.
  • מפתח משתמש: מפתח משתמש הוא מחרוזת שיכולה לשמש לזיהוי תוכנית הנתונים של המשתמש. מספר זה יכול להיות ה-CPID או MSISDN עבור אפליקציות עם גישה ל- MSISDN.
  • DPA: סוכן של תוכנית נתונים, שירות המיושם על ידי מפעילים של רשתות סלולריות שמשתפים מידע על תוכניות משתמשים עם GTAF. הרשות להגנה על מידע (DPA) יכולה לשתף מידע עם GTAF באמצעות שילוב של שליחת נתונים דרך Google Mobile Data Plan Sharing API, והטמעה של Data Plan Agent API. ה-DPA יכול גם לשמש כנקודת הקצה CPID.
  • UE: ציוד משתמש, מכשיר שהמשתמש משתמש בו.

שפת הדרישות

מילות המפתח &"MUST", "MUST NOT", &"required", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT&PLURAL;, "RECOMMENDED", "MAY" ו-∈29&

שיתוף של חבילת גלישה

ברמה גבוהה, השיתוף של חבילת הגלישה מורכב משלושה חלקים:

  1. מנגנון לזיהוי ולעדכון של מזהה תוכנית ספק (CPID), שיכול לשמש כמפתח משתמש. אפליקציות עם גישה אל MSISDN, MSISDN יכולות להשתמש בו כמפתח משתמש.
  2. ממשק API של Google לשיתוף נתונים בנייד המאפשר ל-DPA לשלוח ל-Google מידע על תוכנית הנתונים של המשתמש. לדוגמה, אם הרשות להגנה על מידע (DPA) רוצים להודיע למשתמש על מבצע, היא יכולה להודיע ל-GTAF שמוסר למשתמש הודעה על כך.
  3. Data Plan Agent API שהוטמע על ידי ה-DPA שמאפשר ל-GTAF לשלוח שאילתה ל-DPA לקבלת מידע על תוכנית הנתונים של המשתמש. לדוגמה, אם אפליקציה רוצה להציג את היתרה הנוכחית של חבילת הגלישה למשתמש, היא יכולה לשלוח שאילתה ל-GTAF, שמדווחת על הרשות להגנה על מידע (DPA).

בהמשך הדף הזה פירטנו את המונחים של תוכנית הנתונים ומוסבר איך ליצור CPID. לאחר מכן יש לעבור אל Google Mobile Data Plan Sharing API ולמפרט Data Plan Agent API.

הסברים על המונחים בתוכנית הנתונים

הסכימה של planStatus המוגדרת ב-API חייבת להיות מסוגלת לייצג תוכניות נתונים שמוצעות על ידי המפעילים למשתמשים. ה-API תומך בהגדרת תוכניות נתונים שגובות משתמשים לפי תעריף שונה עבור כל התנועה לקבוצה מסוימת של כתובות אתרים (למשל, כל התנועה אל *.acmefake.com כרוכה בתשלום שונה. ממשק ה-API תומך גם בתוכניות נתונים שמציעות תעריפים שונים לסוגים מסוימים של פעולות באפליקציה. אנחנו מכנים את התוכניות האלה של נתוני אפליקציות משנה. דוגמה לתוכנית נתונים של אפליקציות משנה היא להציע גלישה בחינם (כלומר, שיעור אפס) של סרטונים, וצפייה בסרטונים מתוך האפליקציה מנכה נתונים מיתרת הנתונים של המנוי. לאחר מכן, האפליקציה לסרטונים חייבת ללמוד את המידע הזה בזמן שהיא מבקשת מידע על חבילת גלישה.

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

תוכנית נתונים: חבילת השירותים ברמה העליונה שנרכשה על ידי מנוי. פרק הזמן הזה יכול להיות פשוט כמו "10GB של נתונים סלולריים במשך 30 יום&quot, או שניתן להגדיר אותו כאוסף של רכיבים, הידוע גם בשם מודולים. חבילת גלישה כוללת:

  • שם תוכנית הנתונים, כגון "ACME Red".
  • מזהה תוכנית הנתונים, המשמש להתייחס לתוכנית, למשל במהלך רכישות.
  • תאריך תפוגה, כשתוכנית הנתונים תפוג.
  • קטגוריית תוכנית, אם התוכנית היא תשלום מראש או תוכנית בתשלום לאחר השימוש.

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

  • שם המודול, כגון "Free Video nights&&;;
  • תעריף מקסימלי, רוחב הפס שמוצע למשתמש במודול הזה.
  • חלונות זמן גמישים, חלונות זמן שבמהלכם ניתן להציע הנחה למשתמש.
  • קטגוריית תנועה של מודול של תוכנית (PMTC), תיאור של נתוני התנועה שמודול מסוים חל עליהם. ה-PMTC יכול להיות כללי *בכלל תנועת הגולשים באינטרנט, או להיות ספציפי כמו תנועה שנוצרה/צריכה על ידי אפליקציה, אתר או אפילו תהליכים של משתמש באפליקציה אחת. דוגמאות לסוג השני: "מוזיקה ללא הגבלה", &מירכאות; חבילת נתוני וידאו של 100MB (VDP)", "ללא הגבלה בנתוני משחקים" ו-"גלישת וידאו ללא הגבלה" כדי להגדיר את ה-PMTC, הגדירנו את ה-PMTC הבאים: GENERIC, VIDEO, VIDEO_BROWSING, VIDEO_OFFLINE1, MUSIC, GAMING, SOCIAL, MESSAGING ו-PMTC_UNSPECIFIED.

  • נפח הנתונים או מגבלת הזמן, לאחר הפעלתם, פג תוקף מודול התוכנית כשנפח הנתונים או מגבלת הזמן (במקרה של תוכניות מבוססות-זמן, לדוגמה, חריגה מ-600 דקות של גישה לאינטרנט במהלך 7 הימים הבאים. באיור 1 שבהמשך, מנוי יכול לקנות מודול תוכנית כחלק מ- "ACME Blue" , שמספק נפח תנועה כללי של 1GB לשימוש בשבוע שלאחר פקיעת התוקף.

תוכנית לדוגמה ל-Data Plan API

איור 1. תוכניות נתונים לדוגמה.

הגדרת CPID

ב-GTAF משתמשים במפתח משתמש כדי לזהות מנוי בחלק של התקשורת עם הרשות להגנה על מידע (DPA). אפליקציות עם גישה ל- MSISDN של המשתמש יכולות להשתמש בו כ-user_key. מצד שני, לאפליקציות שאין להן גישה ל-MSISDN, צריך להגדיר מזהה תוכנית ספק (CPID) בלי לגלות את MSISDN של המשתמש. בקטע הבא נתאר את המנגנון ליצירת CPID.

תהליך שיחה לפי עלות ליום

איור 2: זרימת שיחה ליצירת CPID.

  1. אפליקציה של Google ב-UE משתמשת ב-API פנימי של Google כדי לאחזר את כתובת ה-URL של נקודת הקצה של CPID מ-GTAF. המערכת מזהה את המפעיל באמצעות כתובת ה-IP הציבורית של הלקוח וב-MCC ו-MNC של כרטיס ה-SIM הפעיל. במקרה של MVNO, Google תשתמש ב-SPN וב-GID1 כדי לקבוע את ה-MVNO
  2. הלקוח שולח בקשת GET של HTTP לנקודת הקצה (CPID). האופרטור עשוי לתמוך בשליחת הבקשה באמצעות HTTPS.
  3. האופרטור MAY משתמש בפונקציית הבדיקה של חבילות העומק כדי לזהות את הבקשה, ולהחדיר את מספר הטלפון של המשתמש לבקשה ככותרת HTTP.
  4. נקודת הקצה (CPID) מקבלת את הבקשה, יוצרת את ה-CPID ומחזירה את ה-CPID עם משך החיים (TTL), כדי לציין את משך הזמן שבו ה-UE יכול להשתמש ב-CPID הזה.

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

האופרטור SHALL יספק ל-Google את הפרטים הבאים כחלק מתהליך ההצטרפות: 1. ה-CPID_URL שאליו אפליקציות ייצרו קשר כדי להשיג CPID. CPID_URL אחד הוא חובה, אבל המפעיל יכול לספק מספר כתובות URL כדי להגדיל את הזמינות. 1. רשימת הקידומות של כתובת ה-IP של המפעיל ושל קוד המדינה של הנייד (MCC) וקוד הרשת (MNC) שהמפעיל רוצה למפות אל כתובות ה-CPID_URL שצוינו. אם האופרטור משתמש ב-SPN או ב-GID1 כדי להבדיל בין ה-MVNOs ברשת, האופרטור SHALL מספק גם את המידע הזה. Google תשתמש במידע הזה כדי להתאים לקוחות לנקודות הקצה התואמות של CPID, כפי שמתואר בשלב 1 באיור 2.

הפורמט של הבקשה הוא: GET CPID_URL מסיבות קודמות, נקודת הקצה של CPID צריכה לתמוך בבקשה כמו:

GET CPID_URL?app={app_id}

בנקודת הקצה של CPID, אפשר להתעלם מהפרמטר {app_id} של כתובת URL בעת יצירת ה-CPID. עם זאת, עליו לטפל בבקשה שמכילה את הפרמטר.

הבקשה לנקודת הקצה CPID עשויה לכלול כותרת Accept-Language. אם הכותרת כוללת את המחרוזות הניתנות לקריאה אנושית בעדכונים שה-DPA שולח באמצעות Mobile Data Plan Sharing API, חובה להשתמש בהגדרות שסופקו בבקשת ה-CPID.

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

{
    "cpid": "<CPID_string>",
    "ttlSeconds": 2592000
}

ה-CPID המוחזר חייב להיות בתוקף למשך ttlשניות שניות. GTAF מקודד את ה-CPID ב-RFC2396 בקריאות הבאות ל-DPA.

אם מתרחשת שגיאה, נקודת הקצה (CPID) חייבת להחזיר שגיאת HTTP עם גוף תגובה, שחייב להכיל מופע של ErrorResponse. רשימת הערכים האפשריים של קודי השגיאה וקודי השגיאות ב-HTTP זמינה כאן.

{
    "errorMessage": "<error message>",
    "cause": "INVALID_NUMBER"
}

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

יצירת CPID

הדרך המומלצת בנקודת הקצה של CPID ליצירת CPID היא:

CPID_string = Base64(AES(MSISDN + TimeStamp + language, secret))

נקודת הקצה (CPID) תואמת את MSISDN, השפה שנשלחה על ידי הלקוח בכותרת Get-Language, וחותמת זמן של רזולוציה גבוהה ומצפינה אותה באמצעות AES באמצעות מפתח secret. חותמת הזמן צריכה להיות תואמת למועד שבו תוקף ה-CPID יפוג. הפלט המוצפן מקודד לפי Base64. כמו כן, כשמשתמשים ב-CPID בכתובת ה-URL, צריך לקודד את כתובת ה-URL לטיפול בתווים מיוחדים (/+=) שנמצאים ב-Base64. באופן ספציפי, כשה-GTAF מתקשר ל-DPA או כשה-DPA מתקשר ל-Mobile Data Plan API API, קוד ה-CPID חייב להיות מקודד בכתובת ה-URL. אחד היתרונות של יצירת CPID באמצעות הגישה הזו הוא שלנקודת הקצה DPA ו-CPID לא חייב להיות בסיס נתונים של CPIDs ו- MSISDN חוקיים.

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

דרישות אבטחה

המפעילים יבצעו את כל אמצעי הזהירות הנדרשים כדי להגן על הפרטים האישיים של המנויים שלהם. באופן ספציפי, כדי למזער את החשיפה של מספרי הטלפון של המנויים, נקודת הקצה מסוג CPID צריכה להיות בהיקפי האבטחה שלכם. בנוסף, במקרים שבהם המפעיל משתמש ב-DPI, האופרטור צריך להצפין את ה- MSISDN לפני החדרת הבקשה ל-HTTP. אם נקודת הקצה (CPID) היא לא היקף האבטחה שלכם (למשל, כשנקודת הקצה של CPID נפרסת בענן ציבורי), האופרטור לא אמור לשדר את ה-MSISDN באינטרנט הציבורי. האופרטור יכול ליצור VPN בין ה-DPI לנקודת הקצה CPID (ראו איור 1) או להצפין את ה- MSISDN לפני שמכניסים אותו לכותרת. הגישה השנייה מבוססת על ההנחה שנקודת הקצה (CPID) יכולה לפענח את הכותרת שהוחדרה כדי לשחזר את ה- MSISDN לפני יצירת ה-CPID. בנוסף, המפעיל יגן על המפתח הסודי המשמש ליצירת ה-CPID, ויסובב אותו בהתאם למדיניות האבטחה של המפעיל.

דרישות זמינות וקיבולת

אם הלקוחות לא יכולים לאחזר CPID, הם לא יכולים לגשת למידע מ-Mobile Data Plan API. לכן, האופרטור ינקוט את האמצעים הנדרשים כדי להבטיח את הזמינות של נקודת הקצה של CPID. האמצעים האלה כוללים ריבוי מופעים של נקודות הקצה של CPID ו-DPI, יתירות פיזית, אתר ורשת בשתי הפונקציות והקפדה על כך שהמשאבים והקיבולת של המערכת יהיו מספיקים. מעבר לכך, לנקודות הקצה של CPID ולפונקציה DPI שמכניסת את הכותרת צריכה להיות קיבולת מספקת כדי להתמודד עם העומס על כל לקוחות Google שמבקשים מספרי CPID. נקודת הקצה של CPID יכולה להשתמש בערכים גדולים יותר בשדה ttlשניות כדי להפחית את התדירות שבה היא יוצרת מזהי CPID. Google ממליצה להשתמש בערך TTL של 30 ימים.

הערות


  1. המשמעות של VIDEO_OFFLINE PMTC היא שהתוכנית הזו מתאימה לצפייה אופליין בלבד (למשל, סטרימינג באיכות נמוכה מאוד). היא לא תלויה בחלון של FlexTime.