การใช้ Google App Engine เป็น Mobile Back-End

สิ่งที่จำเป็นสำหรับ Mobile App ที่ต้องมีการปรับปรุงข้อมูลบ่อยๆ คือต้องมี Server เพื่อใช้ในการเก็บข้อมูล (ที่เราเรียกว่า Back End – หลังบ้าน) เนื่องจากตอนต่อๆไป เราจะเริ่มมีการเก็บข้อมูลในลักษณะ JSON แล้วให้ Mobile App ดึงข้อมูลไปใช้งานได้ โดยในตอนนี้ผมจะเสนอการใช้ของฟรีคือ Google App Engine ครับ

aeg000

** หมายเหตุ : ภาพที่นำมาประกอบบางภาพมาจาก internet วัตถุประสงค์เพียงเพื่อให้ผู้อ่านเห็นภาพได้ง่ายขึ้นเท่านั้น ไม่มีวัตถุประสงค์ทางการค้าใดๆ  ทั้งสิ้น**

รู้จัก Google App Engine:

App Engine เป็นบริการจาก Google ที่เปิดให้สมัครใช้งานได้ฟรี เพียงแค่เรามี Email ของ GMail ก็สามารถเข้าไปสมัครเปิดใช้บริการได้เลยที่  http://appengine.google.com  ซึ่งเดี๋ยวนี้รู้สึกว่าให้เราสร้างได้ถึง 20 AppID ซึ่งผมจะบอกวิธีการต่อๆไป ที่นี้มาดูว่าเราทำอะไรกับมันได้บ้าง

  • ใช้ในการติดตั้ง Mobile Web App ที่เราพัฒนาขึ้น เพื่อให้ผู้ใช้ใช้งานผ่าน Browser
  • ใช้ในการทำเป็น Back-End ในการควบคุมการ update เนื้อหาของ App โดยใช้วิธีการเช็คเวอร์ชันของไฟล์ แล้วให้ App โหลดข้อมูลไป update
  • ใช้เป็นหน้าเว็บสำหรับโปรโหมด App ของเรา (Landing Page) รวมถึงทำให้ติดผลการค้นหาใน Google ได้ด้วย
  • ใช้เป็นตัวกลาง ระหว่างผู้ใช้ด้วยกัน (จริงๆถ้าใช้งานหนักๆ แนะนำให้ใช้แบบเสียเงิน หรือใชพวก VPS อย่าง DigitalOcean จะสบายใจกว่านะครับ ถ้าอยากได้ฟรีลองตามไปดูบทความแรกของผมก็ได้ Link)

 

วิธีใช้งาน App Engine:

  1. เข้าไปสมัครเปิดใช้บริการที่ https://cloud.google.com/appengine/ ถ้ามี Gmail อยู่แล้วแทบจะไม่ต้องทำอะไร แค่ Login ก็สามารถใช้งานได้แล้ว (ถ้ายังไม่เคยเชื่อมกับเบอร์โทรศัพท์ อาจจะมีให้แจ้งยืนยันผ่านการส่ง SMS แต่ส่วนใหญ่จะส่งมาช้า ถ้ามีตัวเลือก Voice Message ให้เลือกแบบ Voice แล้วรอฝังเสียงเลข 4 หลักจะเร็วกว่า)
    aeg002
  2. หลังจากสมัครและ Login ได้แล้วเราสามารถเริ่มสร้าง Application ได้เลย โดยต้องใส่สิ่งที่เรียกว่า App ID ซึ่งแล้วแต่เราตั้ง แต่ต้องไม่ซ้ำกับของที่มีอยู่แล้ว ได้มาแล้วต้องจำไว้ดีๆครับ หรือ copy เก็บไว้ก่อน เพราะเดียวเราจะใช้ตอนเอา App ขึ้นaeg003
  3. ดาวน์โหลด App Engine SDK ซึ่งเดี๋ยวนี้มีให้เลือกถึง 4 ภาษาคือ Python, Java, PHP และ ภาษา Go อันนี้แล้วแต่ถนัดเลย ส่วนของตัวอย่างนี้จะเสนอส่วนของ Java ครับ โดยดาวน์โหลดได้จาก Link นี้ครับaeg001
  4. หลังจากได้ไฟล์ zip แล้วก็ทำการแตกไว้ในโฟล์เดอร์ที่ต้องการ ถ้าให้สะดวกก็เปลี่ยนชื่อให้เหลือสั้นๆเป็น appengine โดยรายละเอียดการใช้งานสามารถดูได้จาก Link นี้
    aeg004
  5. หากต้องการความสะดวกเราสามารถ set ตัวแปร PATH ให้รู้จักคำสั่งของ appengine ได้
    set PATH=C:/appengine/bin;.;%PATH%
  6. ตรวจสอบการติดตั้งที่เกี่ยวข้องคือ Java JDK และ Maven สามารถดูรายละเอียดได้ตาม Link นี้ครับ
  7. เราสามารถทำตามเอกสารของ Google ได้ตาม Link นี้ครับ โดยโครงสร้าง project ดังนี้ครับaeg005
  8. เราสามารถใช้ Maven ในการทำงานได้โดยมีคำสั่งต่างๆดังนี้
     // เตรียม project
    mvn clean install
    // การติดตั้งแล้วรัน Local AppEngine Server
    mvn appengine:devserver
    // การสั่ง Upload App ของเราขึ้น Server
    mvn appengine:update
    
    

ด้านบนเป็นตัวอย่างการใช้ ตามคำแนะนำของ Google ซึ่งบางครั้งอาจมีปัญหากับบางสภาพแวดล้อม เช่นการตั้งค่าของ Maven รวมถึงการทำงานผ่าน proxy เป็นต้น ซึ่งปกติผมจะใช้อีกทางเลือกหนึ่งคือ การทำงานผ่านคำสั่ง appcfg

การสร้าง Project App Engine ด้วย NetBean IDE

  1. นอกจากการใช้งานกับ eClipse IDE แล้วเราสามารถติดตั้ง AppEngine เพื่อใช้งานกับ NetBean IDE ได้ด้วยแต่ต้องมีปรับแต่งเล็กน้อยครับ เริ่มจากการ Update Plug-in โดยไปที่เมนู Tool->Plug-in แล้วเลือกแทบ [Setting] เสร็จแล้วกด Add เพื่อเพิ่ม update URL ใหม่เข้าไป
    https://kenai.com/downloads/nbappengine/NetBeans8/updates.xml

    aeg006

  2. กดที่ Available Plugins แล้วค้นที่ช่อง Search ใช้คำว่า “engine” แล้วเลือก Google App Engine Support แล้วกด [Install] เพื่อติดตั้งaeg007
  3. หลังจากนั้นเราจะสามารถเพิ่ม Server ของ App Engine เข้ามาใน Service ได้โดยกดที่แท็บ Services แล้วคลิกขวาที่ Servers แล้วเลือก Add แล้วเลือก GlassFish Server เพื่อเพิ่มตัวเลือกให้เราตอนสร้าง Web Projectaeg009
  4. เมื่อเพิ่ม Server แล้วทำให้เราสามารถสร้าง Java Web Project โดยเลือก App Engine Server เป็นตัวรัน App ของเราได้aeg010
  5. เมื่อสาร้าง Project เสร็จเราสามารถตรวจสอบไฟล์ appengine-web.xml เพื่อเพิ่มรายละเอียด เกี่ยวกับ <threadsafe> กับส่วนของ <application>aeg011
  6. เมื่อกำหนดทุกอย่างเสร็จแล้วสามารถสั่ง Clean and Build เพื่อสั่ง compile project แล้วสามารถกด Run ได้เลย แต่ถ้าไม่สามารถรันได้ สามารถใช้การรันผ่าน command-line โดยใช้คำสั่ง appcfg.cmd ได้ครับโดยอ้างถึง path ของไฟล์ที่ compile แล้วคือ …ProjectName/build/web/….aeg013
  7. ตัวอย่างการใช้ appcfg โดยสมมติให้เราอยู่ใต้ c:\appengine\bin  แล้วไฟล์ Project อยู่ใต้  c:\appengine\app\ajbee-app\ การเรียกใช้สามารถทำได้ดังนี้ครับ (ดูตัวอย่างได้ใน Link นี้)
    //สั่งรัน App บน AppEngine Local Server
    dev_appserver.cmd -p 8080 ../app/ajbee-app/build/web/
    
    //สั่ง Upload Project ขึ้น AppEngine Cloud Server
    appcfg update ../app/ajbee-app/build/web/
    
    //รูปแบบการใช้งานอื่นๆ
    appcfg.sh update_cron myapp/war
    appcfg.sh -A <your_app_id> -V <your_app_version> download_app <output-dir>
    appcfg.sh --proxy=10.1.2.3 update myapp/war

 

AjBee.Me : ขอตัดจบก่อนนะครับเดี๋ยวมีเวลาจะมาเติมรายละเอียดให้ ใครทำตามแล้วติดปัญหา comment หรือ fb message มาถามได้ครับ

ติดตามข้อมูลผ่าน FanPage เข้าไปกด Like ที่: https://www.facebook.com/AjBeeMePage