วันพุธที่ 8 กรกฎาคม พ.ศ. 2558




การประมวลผลแบบกลุ่มเมฆ

(Cloud / Client Architecture)




ความหมาย 

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

          ข้อแตกต่างระหว่าง การประมวลผลแบบกลุ่มเมฆ (Cloud Computing) และ เครือข่ายเชื่อมโยงการกระจายทรัพยากร (Grid Computing) กล่าวคือ การประมวผลแบบกริด จะเป็นการแบ่งบันทรัพยากรร่วมกันระหว่างบุคคลและองค์กร โดยจะถูกกำหนดและควบคุมภายใต้กฎขององค์กรที่เรียกว่า องค์กรเสมือน (Virtual organization) โดยทั้งสองอย่างนี้จะเหมือนกันมาก ในแง่ที่เป็นการทำงานร่วมกันของคอมพิวเตอร์หลายตัว จนเป็นเครือข่ายคอมพิวเตอร์ โดยที่ผู้ใช้ระบบไม่ต้องมีทรัพยากรที่มากไป มีลักษณะเป็นธิน ไคลเอน (Thin client) โดยการประมวลผลแบบกลุ่มเมฆ จะเน้นผู้ใช้เป็นหลัก ส่วนเครือข่ายเชื่อมโยงการกระจายทรัพยากร จะเน้นไปที่ระบบมากกว่า


การประยุกต์ใช้งาน 


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




บทบาท 


                   สถาปัตยกรรมของระบบงานที่ประกอบขึ้นด้วยลูกข่าย (Client) และมีคลาวด์(Cloud) เป็นแม่ข่ายนั้นยังไม่สามารถขีดเส้นแบ่งชัดเจนแน่นอนว่าอะไรควรเป็นงานของลูกข่าย และอะไรควรเป็นของแม่ข่าย ซึ่งเป็นปัญหาเดิมที่เคยพบในสถาปัตยกรรม Client/Server ในอดีต โดยปกติระบบลูกข่ายเป็นซอฟต์แวร์ที่ทำงานกับอุปกรณ์ผ่านอินเทอร์เน็ต รวมเครื่องทั้งพีซี แล็ปท๊อป และอุปกรณ์พกพาต่าง ๆ ในขณะที่เครื่องแม่ข่ายมีกลุ่มซอฟต์แวร์ทำหน้าที่ให้บริการประมวลผล (Software Services) บนคลาวด์แพลตฟอร์มที่มีความยืดหยุ่นมาก หมายความว่าตัวซอฟต์แวร์บริการนั้นจะทำงานบนเครื่องคอมพิวเตอร์ชุดใดก็ได้ที่เชื่อมโยงอยู่กับคลาวด์แพลตฟอร์ม และจะใช้ทรัพยากรไอทีมากน้อยตามความจำเป็น (Elastically scalable) ในกรณีนี้ คลาวด์ทำหน้าที่เป็นจุดควบคุมการทำงานทั้งระบบ โดยมีระบบงานและระบบข้อมูลกระจายอยู่กับอุปกรณ์พกพาของลูกข่ายหลาย ๆ จุดหรือหลาย ๆ ชุดได้  ปัจจุบันนี้ระบบซอฟต์แวร์ที่ทำงานอยู่บนเครื่องลูกข่ายมีทั้งซอฟต์แวร์ที่เขียนขึ้นเฉพาะอุปกรณ์ (Native application) ใช้แพลตฟอร์มเช่น Android หรือ IOS (Native apps) และซอฟต์แวร์ที่เขียนเพื่อทำงานผ่านบราวเซอร์ (Browser)  แต่เนื่องจากบราวเซอร์ทุกวันนี้จะมีความสามารถมาก จึงกลายเป็นทางเลือกว่างานส่วนไหนควรอยู่กับบราวเซอร์บนเครื่องพกพา หรือควรอยู่กับ Server บนคลาวด์  



ผลกระทบ


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