Tags:
Node Thumbnail

ต่อจากการรีวิว AppUp ซึ่งเป็นตลาดกลางขายแอพลิเคชั่นจากอินเทลในบทความที่แล้ว เราได้รู้จักกับ AppUp ในฝั่งของผู้ใช้กันไปแล้ว ว่าจะสามารถซื้อหรือดาวน์โหลดแอพลิเคชั่นฟรีได้อย่างไรบ้าง ในตอนนี้ผมจะมาแนะนำ AppUp จากมุมมองของนักพัฒนากันบ้าง โดยบทความนี้ยังไม่ลงโค้ด หรือแนะนำการพัฒนาแต่เป็นการแนะนำสถาปัตยกรรมกันก่อน แล้วค่อยมีบทความแนะนำการลงมือโค้ดกันในบทความต่อๆ ไป

AppUp ของอินเทลเป็นหน้าร้านขายแอพลิเคชั่นที่สร้างขึ้นมาโดยมีแนวคิดพื้นฐานว่าคอมพิวเตอร์ x86 ที่ใช้ Atom นั้นเป็นอุปกรณ์ที่ต่างไปจากพีซีปรกติ ทำให้ต้องการแอพลิเคชั่นที่ออกแบบมาเฉพาะ เช่น รองรับหน้าจอขนาดเล็ก ความละเอียดต่ำกว่าพีซี, ระวังการประมวลผลมากๆ ที่จะทำให้แบตเตอรี่หมดเร็ว, ติดตั้งได้ง่ายกว่าการลงซอฟต์แวร์ทั่วไป

ซอฟต์แวร์ตามแนวทางนี้มีแนวโน้มว่าจะทำให้การออกแบบกลายเป็นการออกแบบซอฟต์แวร์ที่ง่ายๆ มีฟังก์ชั่นการทำงานเฉพาะ และเช่นเดียวกับซอฟต์แวร์ในโทรศัพท์มือถือที่ราคามักจะไม่สูงนัก การขายแบบใส่กล่องตามร้านจึงกลายเป็นเรื่องยากสำหรับการขายซอฟต์แวร์ในกลุ่มนี้ อีกทั้งการวางขายออนไลน์ก็จะมีต้นทุนเรื่องการเก็บเงิน และการป้องกันการละเมิดลิขสิทธิ์อีกมาก

AppUp ของอินเทลเสนอแนวทางการแก้ปัญหาเหล่านี้ โดยอินเทลจะจัดการ การกระจายซอฟต์แวร์ไปยังผู้ใช้, เก็บเงิน, บริการตรวจสอบสิทธิ์การใช้งาน, รายงานเมื่อซอฟต์แวร์มีปัญหากลับมายังผู้พัฒนา, และจัดการอัพเดตซอฟต์แวร์ไปยังผู้ใช้

No Description

คำถามแรกๆ ที่นักพัฒนาหลายคนถามกัน คือทำไมเราจึงควรสนใจ AppUp ที่เข้ามาทีหลังและตัวตลาดยังไม่เติบโตเต็มที่นัก ผมเองก็เคยคุยกับทางอินเทลในประเด็นนี้และได้คำตอบมาดังนี้

  1. ปริมาณเน็ตบุ๊กในตลาดมีปริมาณสูงมาก และยอดขายยังเติบโตต่อเนื่อง
  2. อินเทลได้ทำความตกลงกับช่องจำหน่ายเน็ตบุ๊กทางขนาดใหญ่ๆ เช่น BestBuy เพื่อติดตั้ง AppUp ให้กับเน็ตบุ๊กทุกเครื่องที่ขายผ่านช่องทางเหล่านี้ นอกจากนี้ฝั่งผู้ผลิตเองก็ได้รับการติดต่อจากอินเทลให้ติดตั้ง AppUp จากโรงงานเพิ่มขึ้นเรื่อยๆ
  3. ปริมาณแอพลิเคชั่นยังมีจำนวนไม่มาก (หลักพัน) เรายังสามารถแทรกตัวเป็นจุดเด่นได้ง่าย
  4. อินเทลเองมีโครงการสนับสนุนต่างๆ เพื่อสนับสนุนพัฒนาแอพลิเคชั่นใน AppUp จำนวนมาก โอกาสที่จะได้รางวัลจากโครงการเหล่านั้นก็มากเป็นเงาตามตัว รวมถึงค่าสมัครช่วงนี้เองก็ฟรีทั้งหมด
  5. เนื่องจากตัว AppUp ไม่ผูกกับเทคโนโลยีใดเฉพาะ แถมมีนโยบายรับเทคโนโลยีหลากหลาย หากใครมีแอพลิเคชั่นอยู่แล้วก็สามารถพอร์ตมาลง AppUp ได้ง่าย เป็นช่องทางจำหน่ายเพิ่มเติมอีกทางหนึ่ง

อินเทลเข้ามาเป็นตัวกลางให้กับนักพัฒนาและผู้ใช้ทั่วไป ผ่านทาง AppUp Center ที่เชื่อมผู้ใช้เข้ากับอินเทล ส่วนในฟากนักพัฒนานั้นก็มี AppUp SDK ที่เป็นไลบราลีที่นักพัฒนาต้องรวมเข้าไปเป็นส่วนหนึ่งของแอพลิเคชั่นที่จะวางตลาด และ AppUp Dashboard ในเว็บของอินเทลที่ช่วยเก็บสถิติการใช้งาน และรายงานปัญหาเมื่อซอฟต์แวร์ของเราไปแคลชในเครื่องของผู้ใช้

No Description

ความสามารถเหล่านี้อินเทลทำผ่านทาง service ตัวหนึ่งที่ติดตั้งไปพร้อมๆ กับ AppUp Center นั่นคือ ADP Service ที่จะทำหน้าที่หลักเป็น licensing service แบบเดียวกับที่เคยมีในซอฟต์แวร์ราคาแพงมากๆ ก่อนหน้านี้ ตัว SDK ที่อินเทลให้เรามาจริงๆ แล้วก็คือไลบรารีที่ทำหน้าที่เชื่อมต่อกับ ADP Service นั่นเอง

No Description

ตัว SDK นี้จะมาในรูปแบบของ C/C++ lib ให้เราไปลิงก์เข้ากับแอพลิเคชั่น ส่วนไลบราลีนี้คุยกับ ADP Service อย่างไรจะไม่เปิดเผย และต่างกันออกไปในแต่ละระบบปฎิบัติการ แต่ฟังก์ชั่นจะแบ่งออกเป็นสี่กลุ่มคือ เปิด/ปิด การเชื่อมต่อกับ ADP Service, ขอตรวจสอบสิทธิ์การใช้งาน, บันทึกเวลาเริ่มใช้งาน, และรายงานเพิ่มเติมเมื่อแอพลิเคชั่นแคลช ผมยกตัวอย่างชื่อฟังก์ชั่นในส่วน ภาษา C จากไฟล์ adpcore.h ในตัว SDK

  • ADP_RET_CODE ADP_Initialize / ADP_RET_CODE ADP_Close เป็นส่วนเปิดและปิดการเชื่อมต่อกับ ADP Service
  • ADP_RET_CODE ADP_IsAuthorized เป็นการขอตรวจสอบสิทธิของผู้ใช้ที่ล็อกอินอยู่ใน AppUp Center ว่ามีสิทธิใช้แอพลิเคชั่นของเราหรือไม่
  • ADP_RET_CODE ADP_IsAppAuthorized เป็นส่วนตรวจสอบสิทธิของโมดูลอื่นๆ ที่แอพลิเคชั่นของเรานำมาใช้ ส่วนนี้เป็นจุดเด่นของ AppUp ที่เราสามารถขายโมดูลโดยขอส่วนแบ่งรายได้จากแอพลิเคชั่นที่นำโมดูลของเราไปใช้ และเราสามารถขายโมดูลให้กับนักพัฒนาอื่นๆ ได้เช่นกัน
  • ADP_RET_CODE ADP_ReportCrash เป็นการส่งรายงานปัญหาไปยังหน้า Dashboard ใน AppUp แม้คอมพิวเตอร์จะไม่ได้ออนไลน์อยู่ โดยตัว ADP Service จะทำหน้าที่นำส่งข้อมูลนี้ต่อไป โดยมันจะเพิ่มข้อมูลอื่นๆ เช่น OS และเวลารายงาน อย่างไรก็ตาม หากแอพลิเคชั่นแคลชไปเองโดยไม่ได้เรียกฟังก์ชั่นนี้ก็จะไม่มีการรายงาน
  • ADP_RET_CODE ADP_ApplicationBeginEvent / ADP_RET_CODE ADP_ApplicationEndEvent เป็นการบันทึกเวลาเริ่มใช้งานแอพลิเคชั่นเพื่อเก็บเป็นสถิติการใช้งาน

จะเห็นว่าฟังก์ชั่นในช่วงแรกนี้จะยังไม่มากนัก อย่างไรก็ตาม AppUp ในตอนนี้ยังอยู่ในสถานะเบต้า และมีแนวโน้มว่ายังมีการพัฒนาไปอีกมาก และส่วนสำคัญที่สุดคงเป็นส่วนของการเช็คสิทธิการใช้งานที่จะลดกระบวนการใส่คีย์ในซอฟต์แวร์ หรือการป้องกันอื่นๆ ที่เคยเป็นเรื่องปวดหัวสำหรับนักพัฒนารายย่อย โดยหากขายผ่าน AppUp ก็ให้ ADP Service จัดการเรื่องนี้ไป

นอกจากส่วนของการให้บริการนักพัฒนาแล้ว กระบวนการรับแอพลิเคชั่นขึ้น AppUp Center นั้นจะมีการตรวจสอบว่าแอพลิเคชั่นสามารถรองรับกรณีต่างๆ เช่น ไม่สามารถติดต่อกับ ADP Service ได้ หรือแอพลิเคชั่นไม่ได้รับอนุญาตให้รันได้อย่างถูกต้องหรือไม่ โดยในตัว SDK จะมีโปรแกรมที่ชื่อว่า ATDS ที่จำลองการทำงานของ ADP service ในรูปแบบต่างๆ ให้

นอกจากในส่วนของการใช้ SDK อย่างถูกต้องตามข้อกำหนดแล้ว AppUp ยังระบุว่าการแพ็คซอฟต์แวร์จะต้องเป็นไปตามข้อกำหนด โดยในส่วนนี้จะต่างกันไปตามแพลตฟอร์ม ในส่วนนี้ควรตรวจสอบเอกสาร Validation Process ล่วงหน้าก่อนส่งแอพลิเคชั่นขึ้นหน้าเว็บ เช่นกรณีของวินโดวส์จะมีเงื่อนไขการแพ็คซอฟต์แวร์ดังนี้

  • ตัวติดตั้งต้องเป็นไฟล์ MSI
  • ต้องติดตั้งโดยไม่ต้องถามอะไรผู้ใช้เพิ่มเติมอีก
  • ต้องได้ไฟล์ executable ไฟล์เดียว ห้ามลงครั้งเดียวแล้วมีโปรแกรมให้เลือกหลายๆ ตัวแบบแอพลิเคชั่นวินโดวส์เดิมๆ
  • อย่าใช้ argument นอกรูปแบบที่กำหนด
  • ตรวจสอบไลบรารีเพิ่มเติมที่ต้องการก่อนรันเสมอ

เงื่อนไขเหล่านี้จะต่างกันไปในแต่ละแพลตฟอร์ม เช่น Adobe AIR นั้นง่ายมากคือส่งไฟล์ .AIR ไปยัง AppUp ได้เลย แต่มีเงื่อนไขว่า .AIR นั้นต้องได้รับการ sign จาก CA ที่ทาง Adobe เชื่อถือคือ Thatwe, Verisign, GlobalSign, และ ChosenSecurity ซึ่งส่วนนี้จะมีค่าใช้จ่ายค่อนข้างแพง (ต่ำสุด 199 ดอลลาร์ต่อปี) ข้อจำกัดของ AIR นั้นเกิดขึ้นเพราะเป็นเงื่อนไขของทาง Adobe เอง

ส่วนระบบปฎิบัติการอื่นๆ ที่ AppUp จะรองรับในอนาคตนั้น จะมีกระบวนการแพ็คต่างกันไป บางรุ่นต้องการ .deb บางรุ่นต้องการ .rpm ถ้าใครอยากศึกษาเผื่ออนาคตว่าจะขายแอพลิเคชั่นบน MeeGo แล้วก็ได้เวลาศึกษากระบวนการของโอเพนซอร์สกันไว้บ้าง

ถึงตอนนี้ที่เหลือคงเป็นเรื่องของการลองลงมือเขียนโปรแกรมสักตัว แล้วลองส่งโปรแกรมเข้าไปตรวจสอบและแจกจ่ายกันแล้ว ถ้าใครเริ่มพัฒนาหรือลองส่งแอพลิเคชั่นเข้าไปแล้วก็มาเล่าให้ฟังกันด้วยครับ

ที่มาภาพ - สไลด์งาน OSCON 2010 หัวข้อ “Introduction to Developing MeeGo Applications and Taking Advantage of the Intel Atom Developer Program & Intel’s AppUp Center

ข่าวและบทความหมวด - Intel AppUp Center ได้รับการสนับสนุนจากอินเทล เพื่อประชาสัมพันธ์โครงการ Intel Atom Developer Program ให้กับนักพัฒนาในประเทศไทย

Get latest news from Blognone