รายงาน Live Services Jumpstart 2009

by javaboom
16 December 2008 - 03:11

เมื่อวันที่ 10 - 11 ธันวาคม พ.ศ. 2551 ที่ผ่านมา ผมได้เข้าคอร์สอบรมของไมโครซอฟท์ ในหัวข้อ Live Services Jumpstart 2009 จัดขึ้นที่โรงแรมแมริออท ประเทศสิงคโปร์ ทั้งนี้ Live Services Jumpstart จัดว่าเป็นการอบรมครั้งยิ่งใหญ่ของไมโครซอฟท์ เพราะจัดอบรมในเวลาไล่เลี่ยกันในหลายประเทศ และใช้งบในการจัดอบรมไม่น้อยทีเดียว (ดูจากจำนวนผู้เข้าอบรม และสถานที่อบรมกับอาหารชั้นดี) ขอแนะนำสั้นๆก่อนว่า การอบรมนี้เป็นภาคปฏิบัติที่แนะนำให้นักพัฒนาซอฟต์แวร์เข้าใจวิธีการพัฒนาแอพพลิเคชันเพื่อทำงานอยู่บน "กลุ่มเมฆของไมโครซอฟท์"

ต่อไปนี้ ผมจะใช้คำว่า "กลุ่มเมฆ" แทนแพลตฟอร์มของฮาร์ดแวร์และซอฟต์แวร์ที่ทำงานอยู่บนเครือข่ายอินเทอร์เน็ต เพื่อให้บริการในรูปแบบต่างๆแก่ผู้ใช้

การอบรม Live Services Jumpstart

Live Services Jumpstart เป็นคอร์สอบรมภาคปฏิบัติ ส่วนใหญ่ผู้เข้าอบรมเป็นบริษัทพาร์ทเนอร์ของไมโครซอฟท์ ส่วนบริษัทอื่นๆหรือบุคคลทั่วไปก็สามารถลงทะเบียนเข้าอบรมได้ด้วยเช่นกัน โดยไม่เสียค่าลงทะเบียนใดๆทั้งสิ้น ซึ่งเนื้อหาอบรมจะเน้นไปที่ แนวทางการพัฒนาแอพพลิเคชันด้วยเครื่องมือต่างๆที่จัดเตรียมโดย Live Services สำหรับตารางหัวข้ออบรม ท่านสามารถดูได้จาก Agenda สำหรับข้อมูลอื่นๆของการอบรมสามารถดูได้ที่เว็บ lsjumpstart.com

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

สำหรับผู้ที่สนใจศึกษาวิธีการพัฒนาโปรแกรมด้วย Live Services จริงๆ ท่านสามารถศึกษาได้ด้วยตนเองที่ MSDN

Windows Live กับ Live Services

ก่อนที่จะลงรายละเอียดของเนื้อหาอบรมจริงๆ ผมขออธิบายความหมายของ Windows Live กับ Live Services

Windows Live เป็นบริการบนอินเทอร์เน็ต สำหรับหน้าเว็บหลักของ Windows Live อยู่ที่ home.live.com ส่วน live.com เป็นหน้าหลักของบริการ Live Search หากจะลงรายละเอียดไปอีกนิดนึง Windows Live ก็คือ ศูนย์กลางของบริการต่างๆที่ทำงานอยู่บนกลุ่มเมฆของไมโครซอฟท์ โดยมีบริการอยู่หลายตัวด้วยกันตามที่แสดงไว้ในภาพต่อไปนี้ ก่อนอื่นขอบอกไว้ล่วงหน้าก่อนว่า บริการบนกลุ่มเมฆของไมโครซอฟท์ไม่ได้มีแค่เพียง Windows Live เท่านั้น แต่ยังมีบริการอื่นอีก ซึ่งจะกล่าวในรายงานนี้นิดหน่อยในส่วนของ Azure

ผมเชื่อว่าหลายท่านรู้จักและได้ใช้หรือกำลังใช้บริการของ Windows Live กันแล้ว บริการของ Windows Live มีมากมาย อันได้แก่ Windows Live Hotmail, Windows Live Calendar, Windows Live Alerts, Windows Live Favorites, Windows Live SkyDrive, Windows Live Spaces, Windows Live Messenger และอีกมากมาย (เคยใช้กันหมดหรือยังครับ) ส่วนท่านที่สนใจข้อมูลเพิ่มเติม สามารถอ่านข้อมูลคร่าวๆได้ที่ Wikipedia

ส่วน Live Services คือ ศูนย์กลางของเครื่องมือสำหรับพัฒนาแอพพลิเคชันที่สามารถเข้าถึงผู้คนที่มีมากกว่า 400 ล้านรายที่กำลังใช้บริการต่างๆของ Windows Live อยู่ ถ้าหากมองความสัมพันธ์ระหว่าง Windows Live กับ Live Services แล้วจะกล่าวได้ว่า Live Services จัดเตรียมเครื่องมือสำหรับการพัฒนาแอพพลิเคชันเพื่อเรียกบริการของ Windows Live ทั้งนี้ หน้าเว็บหลักของ Live Services จะอยู่ที่ dev.live.com

เกาะทั้งสี่

การอบรมเริ่มที่การอธิบายถึง การดำรงชีวิตในยุคดิจิตอล (digital lives) ที่ต้องเกี่ยวข้องกับองค์ประกอบทั้งหมด 4 กลุ่ม ซึ่งไมโครซอฟท์เรียกแต่ละกลุ่มว่า เกาะ (island) ได้แก่ เกาะของผู้คน (people), เกาะของอุปกรณ์ (devices), เกาะของแอพพลิเคชัน (applications), และ เกาะของข้อมูลที่เป็นหนึ่งเดียวกัน (data synchronization) โดยเกาะทั้งสี่นี้ก็คือวิสัยทัศน์ของไมโครซอฟท์ และไมโครซอฟท์ตั้งเป้าหมายไว้ว่าต้องพิชิตเกาะทั้งสี่นี้ให้ได้ ด้วยการรวมเกาะทั้งสี่ภายใต้กลุ่มเมฆเดียวกัน ซึ่งไมโครซอฟท์เรียกกลุ่มเมฆของตนว่า Azure

  • เกาะของผู้คน คือ มนุษย์ที่ใช้ชีวิตในยุคดิจิตอล

  • เกาะของอุปกรณ์ เกิดจากการที่ไมโครซอฟท์เล็งเห็นว่าเกาะ people เป็นเจ้าของหรือมีส่วนเกี่ยวข้องกับอุปกรณ์หรือ device เป็นอย่างมาก ตัวอย่่างของอุปกรณ์ ได้แก่ โทรศัพท์มือถือ (อย่าง Windows Mobile), พีดีเอ (เช่น Pocket PC), เครื่องเกมคอลโซล (เช่น XBOX 360), โทรทัศน์, เครื่อง set-top-box, Microsoft Surface, เครื่องเล่น MP3 แบบพกพา (เช่น Zune) และอุปกรณ์ไฟฟ้าต่างๆ

  • เกาะของแอพพลิเคชัน เป็นเกาะของกลุ่มซอฟต์แวร์ ซึ่งต้องยอมรับเลยว่า ไมโครซอฟท์เป็นเจ้าพ่อที่สร้างสรรค์ผลิตภัณฑ์ซอฟต์แวร์หลากหลายประเภทและครอบคลุมความต้องการได้อย่างกว้าง ตั้งแต่ Microsoft Windows สำหรับเป็นระบบปฏิบัติการ, Microsoft Office สำหรับจัดการงานเอกสารสำนักงาน, Microsoft Encarta สำหรับการศึกษา, และซอฟต์แวร์เกมต่างๆในเครือ Microsoft Game Studios เป็นต้น

  • เกาะของข้อมูลที่เป็นหนึ่งเดียวกัน เป็นเกาะที่เกิดจากการประสานข้อมูลที่แชร์กันระหว่าง ผู้คน อุปกรณ์ และแอพพลิเคชัน หรือเรียกง่ายๆว่า เป็นการทำให้เกาะต่างๆเห็นข้อมูลเหมือนกัน ซึ่งระบบที่ใช้ในการประสานข้อมูลนี้มีชื่อว่า Live Mesh

วิสัยทัศน์ของไมโครซอฟท์ คือ เกาะทั้งสี่ ได้แก่

People, Devices, Applications, Data Synchronization

ผมขอเปรียบเทียบเกาะทั้งสี่ของไมโครซอฟท์ กับ กลยุทธ์ C3 ​​(Client Connectivity Cloud) ของกูเกิล ขออ้างอิงจากรายงาน Google Developer Day 2008 นำเสนอโดย mk

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

กลุ่มเมฆของไมโครซอฟท์ ในนามว่า Azure

Azure คือ กลุ่มเมฆของไมโครซอฟท์ มีสถาปัตยกรรมดังภาพต่อไปนี้

ภาพรวมของสถาปัตยกรรมAzure มีอยู่ 3 ชั้น โดยชั้นล่างจะให้บริการงานเฉพาะทางแก่ชั้นบน ขออธิบายจากชั้นล่างขึ้นบน ดังนี้

  • Windows Azure คือ ระบบปฏิบัติการของกลุ่มเมฆ

  • องค์ประกอบหลักทั้งห้า (หรือ building blocks ทั้งห้า) ประกอบด้วยเฟรมเวิร์คและรันไทม์สำหรับการทำงานของบริการและซอฟต์แวร์ต่างๆที่อยู่ชั้นบนสุด ซึ่งแบ่งออกเป็น 5 ประเภท อันได้แก่ Live Services, .NET Services, SQL Services, Sharepoint Services, และ CRM Services โดยเราจะเรียกองค์ประกอบในชั้นนี้กับชั้นของ Windows Azure รวมกันว่า Azure Services Platform

  • ชั้นบนสุด เป็นซอฟต์แวร์และบริการที่ใช้โดยเกาะทั้งสี่ตามที่กล่าวไปแล้ว ทั้งนี้ การอบรมจะครอบคลุมเพียง Windows Live

ขออนุญาตไม่ลงรายละเอียดของ Azure เพราะผมยังไม่ได้มีโอกาสริวิวมันแบบจริงจัง ดังนั้น ขอย้อนกลับมาที่ Live Services อันเป็นหัวข้อหลักของการอบรมนะครับ

พัฒนาแอพพลิเคชันด้วย Live Services

ขอกล่าวถึง Live Services แบบกว้างๆว่า Live Services เป็น ชุดพัฒนาซอฟต์แวร์ที่ประกอบด้วยเฟรมเวิร์คและ API มากมายสำหรับการพัฒนาแอพพลิเคชันเพื่อเข้าถึงบริการต่างๆของ Windows Live และยังมีชุดพัฒนาสำหรับการประสานข้อมูลระหว่างอุปกรณ์ต่างๆ ทั้งนี้ Live Services ได้จัดเตรียมเครื่องมือสำหรับพัฒนาแอพพลิเคชันโดย Visual Studio .NET และที่สำคัญไปกว่านั้น Live Services ยังจัดเตรียมวิธีการพัฒนาแอพพลิเคชันที่อิงกับมาตรฐานสากล ทำให้รองรับภาษาคอมพิวเตอร์และแพลตฟอร์มอื่นๆได้อีกด้วย

ภาพข้างบน แสดงองค์ประกอบของ Live Services ทั้งหมด 6 องค์ประกอบด้วยกัน คือ Identity, Directory, Storage, Communications and Presence, Search and Geospatial, และ Mesh Services ผมจะไม่ลงรายละเอียดขององค์ประกอบทั้งหมดนี้ ผมเพียงอยากแสดงให้เห็นว่า แต่ละองค์ประกอบได้จัดเตรียมเครื่องมือและวิธีการพัฒนาซอฟต์แวร์ (เช่น API) ไว้สำหรับเรียกบริการเฉพาะทางที่อยู่บนกลุ่มเมฆ มาดูตัวอย่างส่วนหนึ่งของเครื่องมือเหล่านี้ว่ามีอะไรบ้าง

  • Windows Live ID SDK สำหรับจัดการข้อมูลประจำตัวของผู้ใช้ (ผู้ใช้อยู่บนเกาะของผู้คน) ที่เรียกว่า Windows Live ID (ชื่อเดิมคือ Microsoft Passport) ซึ่งตอนนี้สนับสนุน OpenID แล้วด้วย

  • Live Framework SDK สำหรับพัฒนาแอพพลิเคชันที่เรียกว่า Mesh-enabled ซึ่งจะกล่าวต่อไป

  • Live Search API สำหรับพัฒนาแอพพลิเคชันเพื่อค้นหาข้อมูลผ่านบริการ Live Search

  • Microsoft Virtual Earth SDK สำหรับพัฒนาแอพพลิเคชันเพื่อค้นหาข้อมูลอย่างเช่น ค้นหาแผนที่ของสถานที่ และพิกัดเส้นรุ่งเส้นแวงของสถานที่ ผ่านบริการของ Microsoft Virtual Earth

  • Live Services Communications and Messaging APIs สำหรับพัฒนาแอพพลิเคชันเพื่อรับส่งข้อความระหว่าง Windows Live Messenger, กำหนดสถานะของผู้ใช้ (Windows Live Presence), และรับส่งข้อความแจ้งเตือนของบริการ Windows Live Alerts นอกจากนี้แล้ว ยังจัดเตรียมไลบรารี JavaScript สำหรับพัฒนาโปรแกรมให้มีความสามารถอย่าง Windows Live Messenger อีกด้วย

  • Windows Live Spaces SDK สำหรับพัฒนาแอพพลิเคชันสำหรับจัดการข้อมูลข่าวสารบนบริการ Windows Live Spaces

  • Silverlight Streaming SDK สำหรับพัฒนาแอพพลิเคชันเพื่อจัดการไฟล์ที่อยู่บนบริการ Silverlight Streaming (เป็นบริการคล้ายๆ YouTube)

เราสามารถสร้างแอพพลิเคชันโดยใช้ API หลายชนิดเพื่อเข้าถึงบริการที่หลากหลายพร้อมกันได้ ท่านสามารถดูตัวอย่างของเว็บแอพพลิเคชันที่ใช้ Live Services ได้ที่ Quick Applications ในนั้นมีแอพพลิเคชันกว่า 10 ตัวให้เราได้ชม โดยกดที่ลิงค์ชื่อ Tour the Demo Site ของแอพพลิเคชันที่เราต้องการชม ลองเริ่มดูสาธิตที่ Tifiti และ Contoso Bicycle Club และถ้าท่านไม่สามารถเปิดแอพพลิเคชันบางตัวใน Quick Applications ได้ แนะนำว่าให้ท่าน sign in ด้วย Windows Live ID ของท่านผ่านการกดที่แท็ปชื่อ sign in นอกจากนี้ แอพพลิเคชันอาจต้องใช้ Silverlight ดังนั้นอย่าลืมติดตั้ง Silverlight ด้วย เท่าที่ผมทดลองใช้งาน แอพพลิเคชันเหล่านี้จะทำงานได้ดีบน IE และ Firefox

วิทยากรได้สาธิตวิธีการใช้เครื่องมือพัฒนาของ Live Services เพื่อเรียกบริการต่างๆ เริ่มตั้งแต่ Live ID, Live Search, Virtual Earth, Messenger, Presence, Alerts และ Silverlight Streaming ตามลำดับ ซึ่งหัวข้อทั้งหมดนี้ได้ถูกอบรมแบบอัดแน่นภายในวันเดียว นั่นคือวันแรกของการอบรม ส่วนวันที่สองซึ่งเป็นวันสุดท้ายจะเน้นไปที่ Live Framework SDK อันเป็นเครื่องมือพัฒนาที่เกี่ยวข้องกับ Live Mesh

เชื่อมทุกเกาะด้วย Live Mesh

Live Mesh คือ ระบบสำหรับประสานข้อมูลระหว่างแอพพลิเคชันและอุปกรณ์ต่างๆ หรือกล่าวอีกนัยหนึ่ง คือ เชื่อมเกาะต่างๆให้อยู่ภายใต้กลุ่มเมฆเดียวกัน (นั่นคือ Azure) มากไปกว่านั้น Live Mesh ยังทำให้ผู้ใช้สามารถใช้งานแอพพลิเคชันได้ทุกเวลาแม้ว่าจะเชื่อมต่อหรือไม่เชื่อมต่อกับอินเทอร์เน็ตก็ตาม ทำให้ผู้ใช้สามารถเปิดดูข้อมูลและแก้ไขข้อมูลได้ โดยไม่ต้องกังวลว่าอุปกรณ์ต้องเชื่อมต่อกับอินเทอร์เน็ตตลอดเวลา แต่ทว่า การเชื่อมต่ออินเทอร์เน็ตจะทำให้ผู้ใช้ได้ข้อมูลที่ทันสมัย ทั้งนี้ เราจะเรียกแอพพลิเคชันที่สนับสนุนการประสานข้อมูลโดย Live Mesh ว่า Mesh-enabled (เวลาผมฟังวิทยากรออกเสียงคำนี้ เขาออกเสียงคล้ายคำว่า Meshable)

วิทยากรได้เปิดวิดีโอแนะนำ Live Mesh ด้วย อาทิเช่น วิดีโอชื่อ Synchronizing life ต่อไปนี้ (ผมเอามาจาก YouTube แนะนำให้เปิดดูแบบ HD)

คลิปวิดีโออีก 2 คลิปที่วิทยากรเปิดให้ดูช่วงพัก ดูได้จาก Channel 9 MSDN ในหัวข้อ Ori Amiga: Programming the Mesh และ Ori Amiga: Mesh Mobile

ลองเข้าไปใช้บริการ Live Mesh ได้ที่ mesh.com ผมเชื่อว่าหลายท่านในที่นี้ได้ลองใช้ Live Mesh แล้ว และเชื่อว่าหลายท่านยังไม่ประทับใจในความสามารถของ Live Mesh แต่ทางวิทยากรบอกว่า ตอนนี้ Live Mesh ยังอยู่ในช่วงทดลอง (หรือเบต้า) ดังนั้น ความสามารถของ Live Mesh ยังจำกัดอยู่เยอะ

เมื่อเราเข้าไปที่ Live Mesh ด้านบนจะมีแท็ปชื่อ Desktop กับ Devices ในส่วนแท็ป Devices เราสามารถเพิ่มอุปกรณ์ (ได้แก่ คอมพิวเตอร์, โทรศัพท์มือถือ, และอุปกรณ์อื่นๆ) ที่เราต้องการประสานข้อมูลระหว่างอุปกรณ์เหล่านั้น ส่วนแท็ป Desktop เป็นการเข้าไปจัดการ Desktop (เหมือน Desktop ของระบบปฏิบัติการ) ซึ่งเรียกว่า Mesh Desktop ส่วนนี้ เราสามารถสร้างโฟลเดอร์ใหม่ อัพโหลดไฟล์เข้าโฟลเดอร์ โพสต์ข้อความลงโฟลเดอร์ และอัพโหลดแอพพลิเคชันใหม่ๆลงไปได้ ซึ่งข้อมูลและแอพพลิเคชันเหล่านี้สามารถซิงค์หรือประสานให้อุปกรณ์ทุกตัวที่เราใส่ในแท็ป Devices สามารถได้รับข้อมูลเดียวกัน (ทั้งโฟลเดอร์ ไฟล์ ข้อความ และแอพพลิเคชัน)

ใน Live Mesh คำว่า ประสานข้อมูลหรือซิงค์ข้อมูล หมายถึง เป็นการประสานทุกสิ่งทุกอย่างที่อยู่บน Mesh Desktop ให้ทุกๆอุปกรณ์มองเห็นและใช้งานเหมือนกัน ในเวอร์ชันเบต้าของ Live Mesh เราอาจไม่เห็นอะไรมากมายนัก แต่ในเวอร์ชันเต็ม เราจะไม่ได้เห็นแค่เพียงโฟลเดอร์วางอยู่บน Mesh Desktop เท่านั้น แต่ว่าจะมีแอพพลิเคชันที่หลากหลายวางอยู่บน Mesh Desktop อีกด้วย ซึ่งแอพพลิเคชันเหล่านี้ก็เหมือนกับแอพพลิเคชันที่ทำงานได้บนคอมพิวเตอร์ทั่วๆไป เช่น Notepad, Calculator, Paintbrush, Windows Media Player, เกม, หรือแม้แต่ Microsoft Office เป็นต้น และเราสามารถซิงค​์ให้อุปกรณ์ทุกๆเครื่องมีแอพพลิเคชันแบบเดียวกันได้

คำถามมีอยู่ว่าเราจะพัฒนาแอพพลิเคชันบน Mesh Desktop ได้อย่างไร ? คำตอบคือ Ajax กับ Silverlight ซึ่งจะอยู่ในหัวข้อ Live Framework

สร้าง Mesh ด้วย Live Framework

Live Framework หรือเรียกสั้นๆว่า Live FX (ก่อนหน้านี้เรียกว่า Mesh FX) เป็นเครื่องมือสำหรับการพัฒนาซอฟต์แวร์เพื่อการประสานข้อมูลระหว่างเกาะต่างๆ กล่าวอีกนัยหนึ่งคือ Live FX เอาไว้พัฒนาแอพพลิเคชันให้มีความสามารถแบบ Mesh-enabled โดย Live FX จะจัดเตรียมวิธีการพัฒนาที่อิงกับมาตรฐานหรือเป็นที่ยอมรับกว้างขวาง อาทิเช่น REST, [Atom](http://en.wikipedia.org/wiki/Atom_(standard)), JSON, RSS, POX, และ FeedSync และแน่นอน Live FX ยังมี API สำหรับสาวก .NET นอกจากนี้ Live FX ยังจัดเตรียม API สำหรับพัฒนาแอพพลิเคชันบน Mesh Desktop ด้วย Ajax และ Silverlight อีกด้วย

โจทย์ปัญหาที่ว่าจะทำอย่างไรให้ประสานข้อมูลระหว่างอุปกรณ์ที่มีอยู่หลากหลายชนิดได้ คำตอบของไมโครซอฟท์คือ​ จัดเตรียมวิธีการพัฒนาซอฟต์แวร์ที่อิงกับมาตรฐานดั่งที่กล่าวไปแล้ว ดังนั้น นักพัฒนาต้องเข้าใจการจัดการข้อมูลด้วย REST และมีวิธีจัดการรูปแบบของการนำเสนอข้อมูลอย่างใดอย่างหนึ่ง ได้แก่ Atom, JSON, RSS และ POX และก็เข้าใจโปรโตคอล FeedSync ซึ่งวิธีการเหล่านี้ก็ไม่ได้จำกัดภาษาคอมพิวเตอร์หรือแพลตฟอร์มที่จะใช้ในการพัฒนาเลย

แผนภาพข้างล่างนี้แสดงให้เห็นถึงแพลตฟอร์มและภาษาคอมพิวเตอร์ส่วนหนึ่งที่เอาไปใช้กับ Live FX ได้ ซึ่งไมโครซอฟท์เรียกการพัฒนาแอพพลิเคชันด้วย Live FX ว่าเป็นแบบ "Write Once, Run Anywhere" อย่างไรก็ดี ไมโครซอฟท์ก็ไม่ลืมที่จะจัดเตรียม API สำหรับนักพัฒนาที่ต้องการใช้ .NET Framework

สถาปัตยกรรมของ Live FX ออกจะซับซ้อน ผมเลยไม่แสดงภาพไว้ในที่นี้ ท่านใดสนใจสามารถเปิดดูจากลิงค์ต่อไปนี้ สถาปัตยกรรม Live FX ฉบับย่อ กับ ฉบับเต็ม

การอบรมได้จบที่ภาคปฏิบัติ โดยผู้เข้าอบรมต้องเขียนแอพพลิเคชันเล็กๆให้ทำงานบน Mesh Desktop นั่นคือแอพพลิเคชันสำหรับโหลดรูปภาพที่เก็บอยู่บน Flickr ขึ้นมาแสดง จากนั้น วิทยากรกล่าวว่า ถ้าหากเราสามารถพัฒนาแอพพลิเคชันบน Mesh Desktop ได้ ก็เป็นเรื่องที่ไม่ยากเลยที่เราจะพัฒนาแอพพลิเคชันลักษณะเดียวกันให้รันบนแพลตฟอร์มหรืออุปกรณ์อื่นๆ เช่น iPhone, Android, XBOX 360, PlayStation 3, Linux และ Mac OS X เป็นต้น แน่นอนว่าเราไม่จำเป็นต้องใช้ Siverlight หรือ Ajax ในการสร้างแอพพลิเคชัน เราอาจจะใช้ Java FX, Adobe AIR, C++, หรือตัวอื่นๆก็ได้ ขอเพียงแค่ภาษาคอมพิวเตอร์หรือเฟรมเวิร์คสามารถพัฒนาแอพพลิเคชันที่เข้าใจมาตรฐานในการจัดการข้อมูลดั่งที่ได้กล่าวไว้ก็พอ

หลังการอบรม

หลังจบการอบรม ในขณะที่ผมกำลังเดินทางกลับบ้าน ผมหวนคิดถึงเนื้อหาในหนังสือที่ผมเพิ่งอ่านไป ชื่อ The Big Switch Rewiring the World, from Edison to Google ในหนังสือได้อ้างถึงไมโครซอฟท์ในบทที่ 4 ชื่อ Goodbye, Mr. Gates ซึ่งกล่าวไว้ว่า ในวันที่ 30 ตุลาคม ปี พ.ศ. 2548 บิล เกตส์ ได้ส่งสารถึงบรรดาผู้บริหารระดับสูงและทีมวิศวกรของไมโครซอฟท์ ให้เริ่มแผนกลยุทธ์เทคโนโลยี ภายใต้ชื่อ "Internet Software Services" ซึ่งนับว่าเป็นจุดเริ่มต้นก่อนไมโครซอฟท์ก้าวเข้าสู่ยุค "กลุ่มเมฆ" ผมเรียบเรียงใจความสำคัญส่วนหนึ่งของข้อความที่เกตส์ได้ส่งถึงกองทัพไมโครซอฟท์ไว้ว่า

เราไม่จำเป็นต้องติดตั้งซอฟต์แวร์ที่คอมพิวเตอร์ของเราเอง แต่เราสามารถใช้ซอฟต์แวร์ที่ให้บริการบนเครือข่ายอินเทอร์เน็ตโดยองค์กรที่สาม (third-party company) และผู้ให้บริการสามารถรองรับผู้ใช้ได้เป็นหลักสิบล้านถึงร้อยล้านรายพร้อมๆกันได้ ซึ่งนี่จะเป็นเทคโนโลยีดิสรัปทีฟ (disruptive technology) ที่ครองตลาดและถูกใช้กันอย่างกว้างขวางต่อไป

จากข้อความดังกล่าว ผมมีความเห็นว่า การอบรม Live Services Jumpstart ครั้งนี้คงจะสอดคล้องกับแผนที่เกตส์เคยวางไว้เมื่อ 3 ปีก่อน โดยการอบรมนี้ก็เสมือนเป็นการสอนหรือสร้างกองกำลังเสริมของไมโครซอฟท์ ซึ่งเป็นกองกำลังที่ประกอบด้วยบุคคลภายนอก (นอกบริษัทไมโครซอฟท์) เป็นการอบรมให้กองกำลังเรียนรู้วิธีพัฒนาแอพพลิเคชันเพื่อทำงานกับ "กลุ่มเมฆของไมโครซอฟท์" การอบรมครั้งนี้ นับว่าเป็นกลยุทธ์ที่ชาญฉลาดเลยทีเดียว เพราะด้วยทีมพัฒนาซอฟต์แวร์ของไมโครซอฟท์เพียงลำพัง คงมีกำลังไม่มากพอที่จะนำกลุ่มเมฆของตนครอบครองเครือข่ายอินเทอร์เน็ตให้เป็นกลุ่มเมฆอันดับหนึ่งได้ ทั้งนี้ การยืมมือของกองกำลังเสริม ต้องเริ่มจากการปูทางให้กองกำลังเสริมได้ "เริ่มกระโดด" (Jumpstart) เข้ามาใน Live Services ซึ่งนับว่าเป็นการซ้อมรบครั้งยิ่งใหญ่ของไมโครซอฟท์ในศึกสงครามกลุ่มเมฆเลยก็ว่าได้

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

Blognone Jobs Premium