ไม่ได้เขียนข่าวบน DroidSans นานแล้วนะเนี่ย ^ ^ วันนี้มาเขียนในเชิงเทคนิคหน่อยละกันครับ โดยเทคโนโลยีที่จะเอามาเล่าให้ฟังกันนี้เป็นเทคโนโลยีเกี่ยวกับระบบ Push ที่เรียกได้ว่าเป็น Game Changer เลยก็ว่าได้และถูกผูกมากับ Android 2.2 นามว่า Cloud to Device Messaging หรือชื่อสั้นๆเท่ๆว่า C2DM

Push คืออะไร?

ก่อนจะก้าวไปยังเรื่อง C2DM ก็ขอพูดเรื่อง Push ก่อนนิดนึงละกัน

“Push” มีนิยามง่ายๆคือเทคโนโลยีในการส่งข้อมูลไปยังโทรศัพท์มือถือ ไม่ว่าจะเป็นทางใด ตัวอย่าง Push ในยุคเก่าก็จะมีสิ่งที่ทุกคนคุ้นเคยคือ SMS และอีกอย่างที่เป็น URL โฆษณาพักหลังๆที่ขี่มาพร้อม SMS อันนั้นก็จะเรียกว่า WAP Push

ในยุค 2.5G – 3G นี้ การ Push ข้อมูลประเภท Data Package ผ่านทาง EDGE/3G ถือว่ามีความสำคัญมากอย่างที่เห็นได้จาก Blackberry ที่มี Push Technology ทำให้สามารถรับเมลได้ทันทีที่มีเมลเข้ามา เหมือนกับได้รับ SMS ทันทีที่มีคนส่งมาไม่มีผิด ด้วยความฉับไวและทันเหตุการณ์ (Real Time) นี้เอง ทำให้ทุกคนต้องการมันมากมาย

สำหรับเทคโนโลยีที่ทำงานได้คล้ายกันแต่ด้านหลังทำตรงกันข้ามคือ “Polling” สิ่งที่มันทำคือมันจะคอย Refresh ตัวเองและติดต่อไปยัง Server ตลอดเวลา ข้อเสียที่เห็นได้ชัดเลยคือ “เปลืองแบตมาก” ถ้าเทียบกับ Push ที่นั่งเฉยๆแล้วรอมีคนส่งข้อมูลเข้ามานี่ กินแบตต่างกันมากกว่า 2 เท่าเลยทีเดียวเชียวแหละ
[br]
C2DM ทำงานยังไง

เข้าใจเรื่อง Push กันไปแล้ว งั้นมาถึงเรื่อง C2DM กันมั่ง

Push บน Android เป็นสิ่งที่หลายคนเรียกร้องกันมาก ทาง Google เลยไม่รอช้า ผลักมันออกมาพร้อมกับ Android 2.2 เรียบร้อย (ไม่รอช้า แต่ล่อซะ 2.2 เลย) โดยใช้อุปกรณ์เพิ่มเติมเพียงอย่างเดียวคือ Server สำหรับยิงข้อมูลไปให้ C2DM Frontend เพื่อยิงต่อไปยังมือถืออีกที สำหรับ Life Cycle ของเจ้า C2DM จะเป็นดังภาพ

ตามลำดับคือ

1) Application บนมือถือติดต่อไปยัง Server ของ Google เพื่อรับ Registration ID มา

2) Application ส่ง Registration ID ที่ได้รับมาไปให้ Application Server ของเราและให้ Server จำ Registration ID นี้ไว้ เท่านี้มือถือก็จะเชื่อมกับระบบ C2DM เรียบร้อย

3) เมื่อต้องการ Push ข้อมูลเข้าไป ทาง Server ของเราจะส่งข้อมูลพร้อม Registration ID ไปยัง C2DM Frontend ซึ่งอยู่ใน Cloud แล้วทาง Frontend จะส่งต่อไปยัง Connection Server เพื่อ Push ไปยัง Service ในมือถือ

4) เมื่อ Background Service C2DM ของระบบ Android ในมือถือได้รับข้อความจาก Server ก็จะทำการส่งข้อมูลนี้ไปให้โปรแกรม จากนั้นโปรแกรมจะทำอะไรก็เรื่องของมัน!!

ทั้งนี้ยังไม่แน่ใจว่า Background Service C2DM นี้ทำงานแบบไหน จะ Polling หรือจะใช้วิธีเแบบ Gmail Chat คือต่อ Socket ค้างไว้ แต่จากการทดสอบพบว่าไม่เปลืองแบตเตอรี่แต่อย่างใด

ตัวอย่างนึงของ C2DM ที่ทางกูเกิ้ลเอาออกมาเดโมก็คือ Chrome to Phone ที่เป็นการยิงเว็บจาก Chrome ไปยังโทรศัพ์มือถือให้เปิดเว็บนั้นๆขึ้นมาบนมือถือทันที

Play video

อีกโปรแกรมที่ทำออกมาใช้จริงแล้วและน่าสนใจมากคือ AppBrain ที่เราสามารถเลือกโหลดแอพฯจากเว็บได้และตัวมือถือจะเด้งโหลดให้ทันที เจ๋งมั้ยหละ ^_^

อย่างที่บอก เจ้า C2DM ถือเป็น Game Changer ตัวหนึ่ง จากนี้จะได้เห็นแอพฯที่ใช้ C2DM ออกมาเรื่อยๆ ดังนั้นขอให้จำชื่อเทคโนโลยีนี้ไว้ให้ดี เวลาเห็นจะได้ไม่งงนะจ๊ะ 😀

Reference: C2DM Project, Android Me Up, Android Developers Blog