หลังจาก Apple ทำการเปิดตัว New MacBook Pro สไตล์แพนด้ากันมาสักพัก ล่าสุดก็มีข่าวลือว่าจะทำการเปิดตัว iMac สเป็คใหม่ไฉไลกว่าเดิม นอกจากนี้ยังมี Mac mini ที่มีข่าวลือว่าใกล้จะสูญพันธ์เต็มที ก็มีข่าวว่าจะเปิดตัวรุ่นใหม่ออก มาด้วย รวมถึง iPhone Nano ที่มีภาพหลุดออกมาให้เห็นกันบ้างแล้ว แต่ทั้งนี้ท้ายที่สุดก็ต้องรอว่า งาน MacWorld ที่ใกล้จะถึงนี้จะมีอะไรเกิดขึ้นหรือไม่ แต่เท่าที่ทราบงานนี้คงจะไม่มี Steve Jobs แล้ว ทีมงาน Macdd เชื่อว่า Apple คงจะเริ่มเข้าสู่ภาวะการถ่ายเลือดใหม่อยู่แน่นอน ซึ่งเราก็คงต้องติดตามกันต่อไปว่า อนาคตของ Apple จะเป็นอย่างไร หากไร้เงาพ่อมดเฒ่าอย่าง Steve Jobs (ล่าสุดเมื่อมีข่าวนี้ออกมาปรากฏว่าหุ้นของ Apple ตกลงอีกแล้ว)
และก่อนจะไปติดตามข่าวคราวกันในปีหน้าว่า งาน Macworld จะมีอะไรเซอร์ไพรซ์หรือเปล่า วันนี้เราก็เลยรวบรวมเรื่องราวของ Macbook Pro แลปท็อปในฝันของใครหลายๆคนว่ามีความเป็นมาอย่างไร และมีเรื่องราวอะไรเกิดขึ้นบ้าง
เดือน มกราคม ปี 2006 ถือเป็นการเปลี่ยนแปลง ครั้งสำคัญในวงการคอมพิวเตอร์ ของ Apple เมื่อ Steve Jobs ได้ตัดสินใจครั้งสำคัญโดยได้เปลี่ยนจาก ชิป CPU PowerPC มาเป็น ชิป CPU ของ Intel ซึ่งการปรับเปลี่ยนครั้งนี้ทำให้เครื่อง Mac ได้รับความนิยมในเมืองไทยมากขึ้นด้วยนั้นเอง
โดย PowerBook ก็ได้เปลี่ยนชื่อใหม่มาเป็น MacBook Pro ซึ่งรุ่นแรกนั้นใช้ชิป ใช่ชิป intel Core Duo มีความเร็ว CPU เริ่มต้นที่ 1.83 GHz ไปถึง 2.16 GHz ใช้จอ 15 นิ้ว โดยราคาเริ่มต้นที่ $1,999 ไปจนถึง $2,499 และในเดือนเมษายน 2006 Apple ออก MacBook Pro จอ 17 นิ้ว ในราคา $2,790 และได้มีการอัพสเปคมาเรื่อยๆ ตามชิปของ intel ที่แทบจะมีการอัพเกรดทุกๆ หกเดือนกันเลยทีเดียว จนมาถึง intel Core 2 Duo เรียกได้ว่าพอ Apple เปลี่ยนมาใช้ชิป intel ก็ทำให้เครื่องเปลี่ยนสเปคบ่อยขึ้นนั่นเอง
จนมาถึงเดือนตุลาคม ปี 2008 Apple ก็ได้ทำการรีดีไซน์ MacBook Pro ใหม่อีกครั้ง ซึ่งทุกๆ ท่านก็คงได้เห็นรูปร่างหน้าตากันไปแล้ว ซึ่งใน New MacBook Pro 15 นิ้ว รุ่นใหม่นี้ดูแล้วก็คล้ายการนำ MacBook Air มาสมผสานกับ iMac ในรุ่นปัจจุบัน โดยมีลักษณะ เด่นที่ขอบจอจะมีกรอบสีดำนั้นเองส่วนสเปคก็เรียกได้ว่าแรงซะใจกันไปกันใหญ่ และเราก็ยังต้องรอรุ่น ตัว MacBook Pro 17 นิ้ว กันต่อด้วยครับ ว่าจะมีดีไซน์เหมือนตัว 15 นิ้วหรือไม่ และสเปคจะเเรงแค่ไหน ต้องคอยติดตามกันต่อไป
สำหรับผู้ที่สนใจศึกษาวิธีการพัฒนาโปรแกรมด้วย 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
ส่วน Live Services คือ ศูนย์กลางของเครื่องมือสำหรับพัฒนาแอพพลิเคชันที่สามารถเข้าถึงผู้คนที่มี มากกว่า 400 ล้านรายที่กำลังใช้บริการต่างๆของ Windows Live อยู่ ถ้าหากมองความสัมพันธ์ระหว่าง Windows Live กับ Live Services แล้วจะกล่าวได้ว่า Live Services จัดเตรียมเครื่องมือสำหรับการพัฒนาแอพพลิเคชันเพื่อเรียกบริการของ Windows Live ทั้งนี้ หน้าเว็บหลักของ Live Services จะอยู่ที่ dev.live.com
เกาะของอุปกรณ์ เกิดจากการที่ไมโครซอฟท์เล็งเห็นว่าเกาะ 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
องค์ประกอบหลักทั้งห้า (หรือ 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
เราสามารถสร้างแอพพลิเคชันโดยใช้ 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)
ลองเข้าไปใช้บริการ Live Mesh ได้ที่ mesh.com ผมเชื่อว่าหลายท่านในที่นี้ได้ลองใช้ Live Mesh แล้ว และเชื่อว่าหลายท่านยังไม่ประทับใจในความสามารถของ Live Mesh แต่ทางวิทยากรบอกว่า ตอนนี้ Live Mesh ยังอยู่ในช่วงทดลอง (หรือเบต้า) ดังนั้น ความสามารถของ Live Mesh ยังจำกัดอยู่เยอะ
Live Framework หรือเรียกสั้นๆว่า Live FX (ก่อนหน้านี้เรียกว่า Mesh FX) เป็นเครื่องมือสำหรับการพัฒนาซอฟต์แวร์เพื่อการประสานข้อมูลระหว่างเกาะ ต่างๆ กล่าวอีกนัยหนึ่งคือ Live FX เอาไว้พัฒนาแอพพลิเคชันให้มีความสามารถแบบ Mesh-enabled โดย Live FX จะจัดเตรียมวิธีการพัฒนาที่อิงกับมาตรฐานหรือเป็นที่ยอมรับกว้างขวาง อาทิเช่น REST, Atom, JSON, RSS, POX, และ FeedSync และแน่นอน Live FX ยังมี API สำหรับสาวก .NET นอกจากนี้ Live FX ยังจัดเตรียม API สำหรับพัฒนาแอพพลิเคชันบน Mesh Desktop ด้วย Ajax และ Silverlight อีกด้วย
แผนภาพข้างล่างนี้แสดงให้เห็นถึงแพลตฟอร์มและภาษาคอมพิวเตอร์ส่วนหนึ่ง ที่เอาไปใช้กับ 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” ซึ่งนับว่าเป็นจุดเริ่มต้นก่อนไมโครซอฟท์ก้าวเข้าสู่ยุค “กลุ่มเมฆ” ผมเรียบเรียงใจความสำคัญส่วนหนึ่งของข้อความที่เกตส์ได้ส่งถึงกองทัพ ไมโครซอฟท์ไว้ว่า