באפליקציות Client-Server האפליקציה של הסמארטפון היא רק חלק אחד במשוואה - החלק של ה-client. כדי להשלים את המערכת צריך לטפל גם בחלק השני - החלק של ה-server. צריך כמובן לעשות אינטגרציה בינהם.
גוגל מספקת שרת +חבילת API שמבצעים חלק גדול מהעבודה: את התקשורת שבין הענן לבין המכשירים הניידים. מדובר ב-C2DM, כלומר Cloud to Device Messaging Framework.
אציג תחילה בציור את ה-setup שבניתי:
3 המרכיבים של המערכת:
- My Server - זה ה-Server שמריץ את האפליקציה. אני השתמשתי ב-Google App Engine. ניתן לתכנת אותו ב-Python או ב-Java. אני מכיר יותר java.
- C2DM - זה השרת של גוגל. הוא מתווך בין ה-App Server לבין מכשירי הקצה. ה-App Server שולח אליו את ההודעות - REST, והוא הופך אותן ל-intents שנשלחות ל-Devices.
- Device Client: ה-API מטפל בכל התקשורת מהענן, כך שהאפליקציה שלנו מקבלת את ההודעות כ- Intents. החבילה נתמכת החל מ- API Level 8, כלומר גירסה 2.2. לגבי הקומפילציה - צריך לבנות את ה-client כ-Google API.
מהלך ההתקשרות:
- My Server מבצע Authentication מול שרת ה-C2DM. צריך להרשם לשרות הזה אצל גוגל - ראה קישור למטה.
- המכשיר הנייד פונה ל-C2DM ומקבל ממנו Registration ID.
- המכשיר הנייד פונה ל-My Server ונותן לו את ה-ID הנ"ל. כדי לפנות אל המכשיר הנייד הנ"ל, ה-server יצטרך להצמיד את ה-ID לכל הודעה.
צריך להרשם לשרות הזה אצל גוגל. ראה פרטים ב:
http://code.google.com/android/c2dm/index.html
כל זה ניתן לעשות בחינם? או שזה עולה משהו? מה מבחינת כמות מקום האחסון?
השבמחקהשימוש ב-C2DM חינם, כשההודעה מוגבלת ל-1024 בתים וכמות ההודעות עד 200000 ליום.
השבמחקלגבי ה-APP ENGINE, עד סף שימוש מסוים במשאבים זה חינם. תוכל למצוא את תנאי הסף בקלות.
במידה ואני רוצה ליצור ווב סרוויס (העברת פרמטרים למתודה לצורך חישוב על ענן והחזרת תשובה כאובייקט JSON או דומה) פשוט בעזרת שימוש בphp ו-sqlite ניתן לעשות זאת על ה-C2DM?
השבמחקנ.ב
אני בטוח שאתה יודע מה זה ווב סרוויס - הרישום הוא כדי לדעת מה אני יודע על ווב סרוויס (ויכול להיות שאני טועה כי אני קצת חדש בתחום.. =\)
היי רונן, אוליי שווה לעדכן את הפוסט לgcm אשמח לעזור
השבמחקהי לאוניד, תודה על ההצעה. אם תשלח לי עדכונים אשמח לפרסם.
השבמחק