Development

Cloud to Device Messaging (C2DM) เทคโนโลยี Push ที่ชาวดรอยด์ควรรู้จัก

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

Push คืออะไร?

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

ไม่ได้เขียนข่าวบน 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 ไปยังโทรศัพ์มือถือให้เปิดเว็บนั้นๆขึ้นมาบนมือถือทันที

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

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

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

29 Comments

  1. dahoba

    dahoba Post on August 13, 2010 at 9:40 pm

    #23822

    ขอบคุณครับ เปิดกะโหลกมากมาย 🙂

    ..สำหรับ Life Cycle ของเจ้า C2DM จะเป็นดังภาพ..

  2. tanit9999

    tanit9999 Post on August 13, 2010 at 10:03 pm

    #23836

    ผมก็ว่าโอเคดี ยอมตั้ง server push แบบ BB จะได้ใช้กันมากๆ BB มีภาษีตรงมี server ใช้ใช้ฟรีนี่แหละ แต่ แอนดรอยมีด้วย น่าจะชนกะ BB กันซักยก แต่กลัวว่าเมื่อนิยมเยอะจะโดนปัญหาข้อมูลสำคัญแบบที่ BB โดนแบนอยู่ ยิ่งกูเกิ้ลมีข่าวเรื่องละเมิดความเป็นส่วนตัวอยู่เนืองๆแล้วด้วย

  3. martinjol

    martinjol Post on August 13, 2010 at 10:07 pm

    #23841

    ส่วนผมความรู้น้อย อ่านแล้วงงครับ
    จำไว้แค่ว่า c2dm คือ push ส่งมาที่มือถือเรานะครับ

    • neostp

      neostp Post on August 14, 2010 at 5:40 am

      #24023

      ผมขอจำแบบนี้ด้วยคนนะครับ

      แล้วก็สรุปได้ว่า android ก็ทำแบบบีบีได้

      เข้าใจถูกป่าวหว่า ^^

    • tonhor

      tonhor Post on August 14, 2010 at 8:28 am

      #24082

      อ่า ผมอีกคนครับ 🙂

  4. deemza9999

    deemza9999 Post on August 13, 2010 at 10:20 pm

    #23855

    Alp brain สุดยอดจริงๆลงโปรง่ายสุดๆเพื่อนคนไหนsearch ของไม่เจอเว็บนี้เจอแน่นอน ยิ่งถ้าเพิ่งอัพเวอชั่น หรือ format factory ยิ่งสดวกไม่ต้องมาไล่ลงให้เมื่อยนิ้ว

  5. khiewsart_aon

    khiewsart_aon Post on August 13, 2010 at 10:43 pm

    #23863

    ผมหา App. mobypicture ไม่เจอ ก็เจอ Appbrain นี่แหละครับ

  6. Ning

    Ning Post on August 14, 2010 at 12:19 am

    #23894

    ขอบคุณครับ สำหรับความรู้

  7. natz

    natz Post on August 14, 2010 at 2:14 am

    #23924

    เมื่อไรห่จะมีแชตกันสักทีเนอะ

  8. openmylife Post on August 14, 2010 at 2:38 am

    #23936

    เอาไป 5 กะโหลกคับ

  9. androidand_me

    androidand_me Post on August 14, 2010 at 3:56 am

    #23954

    สุดยอดค่ะ !

  10. hydra02

    hydra02 Post on August 14, 2010 at 3:57 am

    #23956

    ได้ความรู้เพิ่มเติมมากเลย ขอบคุณมากๆ ครับ : )

  11. Akatsuki New

    Akatsuki New Post on August 14, 2010 at 5:10 am

    #23993

    แจ่ม น้องแอนไม่ทำมะดาอยู่ละ อิอิ

    อยากรู้จิงๆเลย เมื่อวันที่มันก้าวไปเป็น 3.0,4.0 หรือ 5.0 มันจะแจ่มขนาดไหนกันน้า

    ปล. แต่แอบกลัวว่า เมื่อถึงเวลานั้น เครื่องเราจะไม่มีให้ลง ฮิๆ แต่ยังไงก็คงจะเก่าเกินไปแล้วมั้ง

    • jackkykung Post on August 14, 2010 at 7:18 am

      #24061

      ถึงวันนั้นคงจะเป็น 6G, 7G ดู Google earth แบบ Hologram สามมิติ ยิงจาก Front camera แสดงผลในอากาศ

    • maxaey

      maxaey Post on August 17, 2010 at 5:34 am

      #25034

      อวกาศได้ใจมากกกก

      +10 !

    • nokhook

      nokhook Post on August 18, 2010 at 10:56 pm

      #25637

      ขอแนะนิดนึง:

      ็Hologram 3D นั้นจะแสดงในอากาศได้แสงต้องสะท้อน วัตถุมาเข้าตาเรา อย่างกระจก หรือไอน้ำ อยู่ๆมันจะลอยๆ ขึ้นมาเองนั้นยังทำไม่ได้นะครับ

    • jackkykung Post on September 5, 2010 at 5:14 pm

      #31085

      ทราบครับ แค่โพสขำๆ

  12. NongYai Post on August 14, 2010 at 5:23 am

    #24009

    ขอบคุณครับ สำหรับความรู้ดีดี มากมายครับ

  13. jackkykung Post on August 14, 2010 at 7:16 am

    #24060

    อ้าว App brain ก็ใช่เหรอ ใช้ไปโดยไม่รู้ตัวแฮะ นึกว่าเป็นแค่ sync ธรรมดาๆ

    ขอบคุณนะคร้าบ

    • IJI

      IJI Post on August 14, 2010 at 5:42 pm

      #24171

      ใน 2.2 นะครับที่ใช้ C2DM

      ใน 2.1 ลงมา ยังทำได้แค่ syc ธรรมดา ^.^

    • jackkykung Post on September 5, 2010 at 5:16 pm

      #31087

      อ่อ Get แล้วครับ ขอบคุณครับ

  14. kodds88 Post on August 14, 2010 at 7:25 am

    #24062

    awesome dude

  15. so_ang

    so_ang Post on August 14, 2010 at 6:33 pm

    #24202

    รอ FROYO มาจุติในน้องมายด์ผมก่อน …

  16. Phitsanu

    Phitsanu Post on August 15, 2010 at 7:29 pm

    #24592

    มันเป็นอะไรที่สุดยอดมาก เฝ้ารอ Froyo เหมือนกัน

    แต่ผมมีข้อสงสัยนิดนึงครับ ตอนนี้ผมใช้ HTC Legend Android 2.1-update1

    ผมลองเข้าไปดูใน "General sync settings" โดยจะมี 2 กลุ่มคือ

    1) <b>ไม่</b> สามารถตั้งค่า Refresh ได้
    – Google Mail

    2) สามารถตั้งค่า Refresh ได้ ขั้นต่ำ 5 นาที คือระบบ <b>"Polling"</b> เปลืองแบตมาก
    – Facebook
    – Flickr
    – Twitter
    – Weather

    คำถามคือ ทำไม Google Mail ถึงไม่สามารถตั้งค่า Refresh ได้ มันคือ ระบบ Push หรือเปล่า?

    เพราะผมสังเกตุว่าถ้ามี Email เข้ามามันจะเตือนเร็วมาก และถ้ามีการทำธุรกรรมผ่านออนไลน์ ที่ต้องมีการแจ้งเตื่่อนผ่าน SMS ด้วยแล้ว บางครั้ง Google Mail มาก่อน SMS ด้วยซ้ำ

    ขอบคุณครับ

    • nuuneoi Post on August 15, 2010 at 8:35 pm

      #24611

      Gmail เป็น Push ครับ ส่วน C2DM ก็จะใช้ Connection เดิมที่มีอยู่แล้วใน Google Service (แต่ไม่บอกว่าอะไร อาจจะเป็น Gmail นี่แหละ) ในการทำงาน Push สำหรับ 3rd Party Application

      สรุปคือ 2.1 Gmail ก็ Push ได้แล้วครับแต่ 3rd Party App ยังไม่ได้ ^_^

    • Phitsanu

      Phitsanu Post on August 15, 2010 at 9:23 pm

      #24625

      ขอบคุณสำหรับ ความกระจ่างครับผม ^_^

    • tonhor

      tonhor Post on August 15, 2010 at 9:32 pm

      #24628

      ขอบคุณที่ถามด้วยคับ มันทำให้ผมได้รู้ด้วย 🙂

  17. nokhook

    nokhook Post on August 18, 2010 at 6:56 pm

    #25508

    ผมว่า C2DM ไม่ใช่แค่ PUSH อย่างที่ Rep ข้างบนเข้าใจนะ
    , โดย PUSH เป็นแค่ด้านเดียวของ C2DM

    ผมเข้าใจว่า ถ้าคุณเป็นบริษัทหนึ่งๆ คุณจะสร้าง app ใดๆก็ได้ ที่ยอมตาม C2DM frontend แล้ว แค่นี้คุณก็ Push สิ่งต่างๆ จากโปรแกรมคุณ ไปยัง cell phone ที่ register รับ app ของคุณได้.

    ที่ระบบนี้ดูเหนือกว่าระบบ mail และ chat ของ BB ก็คือมันทำอย่างอื่นให้เป็น Push ก็ได้ไม่จำกัดแค่ e-mail กะ Chat เช่นว่า
    1 มองว่าคุณเป็นบริษัททำหนังสือ Magazine โดยคุณอาจจะส่ง Magazine Online ไปยังลูกค้าที่เป็นสมาชิกกับคุณ ทั้งฉบับ เข้ามือถือของลูกค้าโดยตรงทุกเดือน,

    2 หรือว่าคุณเป็นบริษัทท่องเที่ยว เวลามีโปรโมชั่นดีๆ คุณก็ส่งโปรนั้นไปให้ สมาชิกที่บอกรับข่าวสารจากคุณทางมือถือได้ทันที

    3 ระบบที่จดจำ ว่าคุณเคยลงโปรแกรมอะไรไว้ และมี contact อะไรบ้าง รูปภาพอะไรบ้างใน มือถือคุณ ทีนี้เวลาคุณเบื่อมือถือเก่าแล้ว อยากเปลี่ยนมือถือใหม่ เวลาย้ายโปรแกรมหรือ contact และอื่นๆ ที่อยู่ใน sd card จะสามารถ ย้ายได้ง่ายๆ แค่คลิ๊กเดียวผ่านระบบ C2DM ไปเลย. ขอให้มี Register ID เท่านั้น. ไม่ต้องมา sync contact, sync e-mail อะไรให้วุ่นวาย แบบสมัยใช้ windows mobile phone เวลาเปลี่ยนมือถือมันจะยุ่งยากพอควร เวลาย้ายข้อมูล.

    ปัญหาคือว่า: เครื่องมือถือถ้าอยากเป็น push จริงๆ ก็ต้องต่อ Net ตลอดเวลา ค่าเน็ต แบบ unlimited บ้านเรา เืดือนละ 1000 บาท ถ้าปีนึง ก็ 12,000 บาท เราจะยอมรับได้ไหมกับค่าเน็ตที่ซื้อน้องดรอยได้ครึ่งค่อนเครื่องไปแล้ว

    • Phitsanu

      Phitsanu Post on August 19, 2010 at 10:53 pm

      #25908

      ขอบคุณ สำหรับคำอธิบายครับผม

      ตอนนี้ HTC Legend ของผมอัพ ROM เป็น Android 2.2 (CyanogenMod-6.0.0-Legend) เรียบร้อยแล้ว

      เดี๋ยวจะทดลอง C2DM ดูสะหน่อย มันน่าสนในมากเลย

      http://code.google.com/android/c2dm/

      http://code.google.com/p/jumpnote/

Leave a Reply

To Top