יום שלישי, פברואר 8

חיבור לענן - Cloud to Device Messaging - C2DM

באפליקציות Client-Server האפליקציה של הסמארטפון היא רק חלק אחד במשוואה - החלק של ה-client. כדי להשלים את המערכת צריך לטפל גם בחלק השני - החלק של ה-server.  צריך כמובן לעשות אינטגרציה בינהם.
גוגל מספקת שרת +חבילת API שמבצעים חלק גדול מהעבודה: את התקשורת שבין הענן לבין המכשירים הניידים. מדובר ב-C2DM, כלומר  Cloud to Device Messaging Framework.
אציג תחילה בציור את ה-setup שבניתי:





3 המרכיבים של המערכת:
  1. My Server - זה ה-Server שמריץ את האפליקציה. אני השתמשתי ב-Google App Engine. ניתן לתכנת אותו ב-Python או ב-Java. אני מכיר יותר java.
  2. C2DM - זה השרת של גוגל. הוא מתווך בין ה-App Server  לבין מכשירי הקצה. ה-App Server שולח אליו את ההודעות - REST, והוא הופך אותן ל-intents שנשלחות ל-Devices.
  3. Device Client:  ה-API מטפל בכל התקשורת מהענן, כך שהאפליקציה שלנו מקבלת את ההודעות כ- Intents. החבילה נתמכת החל מ- API Level 8, כלומר גירסה 2.2. לגבי הקומפילציה - צריך לבנות את ה-client כ-Google API. 

מהלך ההתקשרות:
  1. My Server מבצע Authentication מול שרת ה-C2DM.  צריך להרשם לשרות הזה אצל גוגל - ראה קישור למטה.
  2. המכשיר הנייד פונה ל-C2DM ומקבל ממנו Registration ID. 
  3. המכשיר הנייד פונה ל-My Server ונותן לו את ה-ID הנ"ל. כדי לפנות אל המכשיר הנייד הנ"ל, ה-server יצטרך להצמיד את ה-ID לכל הודעה.

  צריך להרשם לשרות הזה אצל גוגל. ראה פרטים ב: 
http://code.google.com/android/c2dm/index.html






5 תגובות:

  1. כל זה ניתן לעשות בחינם? או שזה עולה משהו? מה מבחינת כמות מקום האחסון?

    השבמחק
  2. השימוש ב-C2DM חינם, כשההודעה מוגבלת ל-1024 בתים וכמות ההודעות עד 200000 ליום.
    לגבי ה-APP ENGINE, עד סף שימוש מסוים במשאבים זה חינם. תוכל למצוא את תנאי הסף בקלות.

    השבמחק
  3. במידה ואני רוצה ליצור ווב סרוויס (העברת פרמטרים למתודה לצורך חישוב על ענן והחזרת תשובה כאובייקט JSON או דומה) פשוט בעזרת שימוש בphp ו-sqlite ניתן לעשות זאת על ה-C2DM?

    נ.ב
    אני בטוח שאתה יודע מה זה ווב סרוויס - הרישום הוא כדי לדעת מה אני יודע על ווב סרוויס (ויכול להיות שאני טועה כי אני קצת חדש בתחום.. =\)

    השבמחק
  4. היי רונן, אוליי שווה לעדכן את הפוסט לgcm אשמח לעזור

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

    השבמחק