Skip links
View
Drag

CTO Brief

MQTT โปรโตคอลเชื่อมทุกอุปกรณ์ในโลก Internet of Things

อินเทอร์เน็ตทุกวันนี้เราอาจจะมองแทบทุกอย่างเป็นเว็บไปได้เพราะการสื่อสารส่วนมากบนอินเทอร์เน็ตส่งข้อมูลผ่านโปรโตคอล HTTP แต่ในโลกยุค Internet of Things (IoT) อีกโปรโตคอลที่กำลังมีการใช้งานมากขึ้นเรื่อยๆ คือ MQTT หรือ MQ Telemetry Transport โปรโตคอลสำหรับการเชื่อมต่อแบบ machine-to-machine หรือคอมพิวเตอร์สู่คอมพิวเตอร์ โดยตัวโปรโตคอล MQTT เองไม่ได้ออกแบบให้เชื่อมต่อจากเซิร์ฟเวอร์เข้าไปยังไคลเอนต์แบบ HTTP ที่เว็บเบราว์เซอร์เชื่อมต่อกับเว็บเซิร์ฟเวอร์ แต่ MQTT อาศัยตัวกลางที่เรียกว่า broker ในการเชื่อมต่อไคลเอนต์ในระบบเข้าด้วยกัน ทำให้ไคลเอนต์แต่ละตัวสามารถรับข้อมูลจากไคลเอนต์ตัวอื่นๆ ได้ รูปแบบการเชื่อมต่ออาจจะดูซับซ้อน แต่รูปแบบการใช้งานในบ้านนั้น อุปกรณ์ไฟฟ้าทุกตัวจะทำหน้าที่เป็นไคลเอนต์ในระบบ MQTT ได้ ระบบง่ายๆ เช่น การปิด-เปิดไฟส่องบันได นั้นควบคุมด้วยสวิตช์สองตัว ตัวหลอดไฟเชื่อมต่อกับ broker แล้วแจ้งว่าต้องการรับข้อมูลสวิตช์ โดยกำหนดชื่อรอรับคำสั่ง switch/stairA จากนั้นจะเปิดหรือปิดหลอดไฟทุกครั้งที่มีอุปกรณ์ใดๆ ยิงคำสั่งนี้เข้ามา ตัวสวิตช์ที่หัวบันใดทั้งชั้นบนและล่างสามารถคอนฟิกให้ยิงคำสั่งได้ตรงกันทั้งคู่ ทำให้สามารถใช้สวิตช์กี่ตัวก็ได้ในการควบคุมหลอดไฟดวงเดียวกัน รวมถึงในบ้านอาจจะมีระบบกลางที่คอยดูสถานะหลอดไฟทั้งบ้านเพื่อควบคุมการใช้พลังงาน นอกจากการส่งคำสั่งเปิดปิดไฟแล้ว MQTT ยังใช้ส่งข้อมูลอื่นๆ ได้อีกมาก เช่น อุณหภูมิห้อง, ระดับความสว่าง, คุณภาพอากาศหรือปริมาณฝุ่น, สถานะแจ้งเตือน เช่น มีการเคลื่อนไหว หรือประตูกำลังเปิดปิด ในอุตสาหกรรม MQTT อาจจะใช้ส่งข้อมูลเครื่องจักร เช่น รอบมอเตอร์หรือประมาณการผลิต MQTT เปิดทางให้อุปกรณ์ IoT สามารถเชื่อมต่อถึงกันโดยข้อมูลมีขนาดเล็ก ทุกวันนี้ผู้ให้บริการคลาวด์ที่มีบริการ IoT ก็มักให้บริการ MQTT gateway ไว้ด้วย เช่น Microsoft Azure IoT Hub, IBM IoT Platform, Google Cloud IoT Core, หรือ AWS IoT Core ทำให้อุปกรณ์ IoT เชื่อมต่อส่งข้อมูลเข้าไปยังบริการคลาวด์ ทำให้องค์กรสามารถเก็บข้อมูลจากอุปกรณ์ IoT จำนวนมาก สร้างคอนโซลกลางสำหรับการตรวจสอบสถานะและการควบคุมจากศูนย์กลาง การลงทุนกับเทคโนโลยี IoT โดยใช้โปรโตคอลกลางเป็นมาตรฐาน จะช่วยลดความซับซ้อนในการออกแบบแอปพลิเคชั่นและการวางโครงสร้างสำหรับบริการ IoT ในระยะยาว ในนาทีนี้ MQTT ก็เป็นตัวเลือกที่โดดเด่น และดูเป็นโปรโตคอลในมีอนาคตอยู่ในตอนนี้ – – –โดยวสันต์ ลิ่วลมไพศาลChief Technology Officer, MFEC

admin mfec

admin mfec

ภาษา Rust ภาษาโปรแกรมมิ่งที่อาจจะเป็นอนาคตของวงการไอที

ในช่วงหลายปีที่ผ่านมานี้วงการไอทีจะพบว่าความนิยมของภาษาเปลี่ยนไปมาก โครงการใหม่ๆ อย่าง Kubernetes นั้นใช้ภาษา Go ในการพัฒนาแทบทั้งระบบ แต่อีกภาษาหนึ่งที่เริ่มได้รับความนิยมเพิ่มขึ้นอย่างต่อเนื่องคือภาษา Rust ภาษา Rust สร้างโดยวิศวกรของ Mozilla ผู้ดูแลโครงการเบราว์เซอร์ Firefox มันถูกออกแบบให้มีประสิทธิภาพสูงเทียบเท่ากับภาษา C/C++ จนสามารถใช้งานพัฒนาซอฟต์แวร์พื้นฐานที่ต้องการประสิทธิภาพสูง เช่น เอนจินของเบราว์เซอร์ หรือจะเป็นระบบปฎิบัติการ จุดเด่นของภาษา Rust คือการป้องกันการใช้หน่วยความจำผิดพลาด ที่เป็นปัญหาที่พบบ่อยในการเขียนโปรแกรมภาษา C โดยโครงสร้างภาษาไม่อนุญาตให้ใช้งานตัวแปรที่เลิกใช้งานไปแล้ว ฟีเจอร์เช่นนี้คล้ายกับฟีเจอร์ในภาษายุคใหม่ ไม่ว่าจะเป็น Java, Python, หรือ Go แต่ Rust ใช้เทคนิคการจัดการหน่วยความจำรูปแบบที่ต่างออกไป ทำให้โปรแกรมไม่ต้องหยุดการทำงานมาจัดการหน่วยความจำ ภาษายุคใหม่อย่าง Java, Go, Python นั้นจะเรียกโค้ดส่วน garbage collector (GC) ขึ้้นมาตรวจสอบการใช้ตัวแปรเป็นช่วงๆ หากพบว่าตัวแปรไม่ได้ใช้งานแล้วก็จะกวาดตัวแปรเหล่านั้นออกจากระบบ จังหวะที่ GC ทำงานโปรแกรมรวมก็จะช้าลงไป แม้จะเล็กน้อยแต่ก็อาจจะกระทบต่อประสิทธิภาพระบบได้ แต่ Rust นั้นไม่มี GC ทำให้ประสิทธิภาพการทำงานค่อนข้างนิ่งตลอดเวลา บริษัทใหญ่ๆ ให้ความสนใจที่จะใช้ Rust ในโครงการมากขึ้นเรื่อยๆ ไมโครซอฟท์เริ่มใช้ภาษา Rust สำหรับพัฒนาเครื่องมือด้านความมั่นคงปลอดภัย, Cloudflare ใช้พัฒนาโปรแกรมแก้ไข HTML, 1Password โปรแกรมจัดการรหัสผ่านก็พอร์ตบางโมดูลไปแล้ว, กูเกิลเองใช้ Rust กับแอปพลิเคชันขนาดเล็กบนบอร์ด IoT, และล่าสุดบริการแชตยอดนิยมอย่าง Discord ก็ใช้ Rust สำหรับเซิร์ฟเวอร์แจ้งเตือนผู้ใช้เวลามีข้อความใหม่ หรือฝ่ายตรงข้ามอ่านข้อความแล้ว โดยระบุว่าคุณภาพการให้บริการนั้นเสถียรกว่าเดิมมาก – – –โดยวสันต์ ลิ่วลมไพศาลChief Technology Officer, MFEC

admin mfec

admin mfec

Visualization กับการสื่อสารเหตุการณ์ Coronavirus

ข่าว Coronavirus ที่ระบาดออกมาจากเมืองอู่ฮั่นประเทศจีนสร้างความวิตกเป็นวงกว้าง แต่ก็เป็นตัวอย่างแสดงให้เห็นว่าเราสามารถใช้เทคโนโลยีมาช่วยจัดการวิกฤติได้บางส่วน ส่วนหนึ่งที่สำคัญคือการสื่อสารข้อมูลให้ครบถ้วนเข้าใจง่าย เช่นกระทรวงสาธารณะสุขของไทย มีหน้าจอเฝ้าระวังเชื้อ nCoV-2019 นี้โดยเฉพาะ ทำให้ประชาชนสามารถมองเห็นได้ว่าโรคแพร่ไปในบริเวณใด และมีผู้ป่วยมากน้อยแค่ไหน ขณะที่สาธารณะสุขของสิงคโปร์มีการรายงานข้อมูลผู้ป่วยค่อนข้างละเอียดโดยแจ้งวันที่ผู้ป่วยเดินทางมาถึงสิงคโปร์, พื้นที่ที่พักอาศัย, และโรงพยาบาลที่เข้ารับการรักษา ข้อมูลเหล่านี้หากอ่านจากข้อความก็จะนึกภาพตามได้ยาก จึงมีผู้นำข้อมูลทั้งหมดมาพล็อตเป็นแผนที่บนเว็บ https://sgwuhan.xose.net/ ทำให้สามารถดูได้โดยง่ายว่ามีพื้นที่ไหนอยู่ในความเสี่ยงบ้าง การนำเสนอข้อมูลในรูปกราฟิกเช่นนี้ทำให้ผู้เกี่ยวข้องสามารถรับข้อมูลจำนวนมากได้ง่ายขึ้น สามารถตัดสินใจได้รวดเร็วและแม่นยำ ในประเทศไทยเองช่วงเหตุการณ์ฝุ่น PM2.5 ก็มีแอปสร้างแผนที่ฝุ่นออกมามากมาย ทำให้เราสามารถตัดสินใจใส่หน้ากากออกจากบ้านในช่วงเวลาที่ไม่ปลอดภัย จะเห็นว่าการสร้าง dashboard ที่สื่อสารข้อมูลได้ครบถ้วน ทั้งในเวลาปกติและเวลาฉุกเฉินเป็นเรื่องสำคัญอย่างมากต่อจากการสร้างระบบรายงานและจัดเก็บข้อมูลที่ดี – – –โดยวสันต์ ลิ่วลมไพศาลChief Technology Officer, MFEC

admin mfec

admin mfec

Visualization กับการสื่อสารเหตุการณ์ Coronavirus

ข่าว Coronavirus ที่ระบาดออกมาจากเมืองอู่ฮั่นประเทศจีนสร้างความวิตกเป็นวงกว้าง แต่ก็เป็นตัวอย่างแสดงให้เห็นว่าเราสามารถใช้เทคโนโลยีมาช่วยจัดการวิกฤติได้บางส่วน ส่วนหนึ่งที่สำคัญคือการสื่อสารข้อมูลให้ครบถ้วนเข้าใจง่าย เช่นกระทรวงสาธารณะสุขของไทย มีหน้าจอเฝ้าระวังเชื้อ nCoV-2019 นี้โดยเฉพาะ ทำให้ประชาชนสามารถมองเห็นได้ว่าโรคแพร่ไปในบริเวณใด และมีผู้ป่วยมากน้อยแค่ไหน ขณะที่สาธารณะสุขของสิงคโปร์มีการรายงานข้อมูลผู้ป่วยค่อนข้างละเอียดโดยแจ้งวันที่ผู้ป่วยเดินทางมาถึงสิงคโปร์, พื้นที่ที่พักอาศัย, และโรงพยาบาลที่เข้ารับการรักษา ข้อมูลเหล่านี้หากอ่านจากข้อความก็จะนึกภาพตามได้ยาก จึงมีผู้นำข้อมูลทั้งหมดมาพล็อตเป็นแผนที่บนเว็บ https://sgwuhan.xose.net/ ทำให้สามารถดูได้โดยง่ายว่ามีพื้นที่ไหนอยู่ในความเสี่ยงบ้าง การนำเสนอข้อมูลในรูปกราฟิกเช่นนี้ทำให้ผู้เกี่ยวข้องสามารถรับข้อมูลจำนวนมากได้ง่ายขึ้น สามารถตัดสินใจได้รวดเร็วและแม่นยำ ในประเทศไทยเองช่วงเหตุการณ์ฝุ่น PM2.5 ก็มีแอปสร้างแผนที่ฝุ่นออกมามากมาย ทำให้เราสามารถตัดสินใจใส่หน้ากากออกจากบ้านในช่วงเวลาที่ไม่ปลอดภัย จะเห็นว่าการสร้าง dashboard ที่สื่อสารข้อมูลได้ครบถ้วน ทั้งในเวลาปกติและเวลาฉุกเฉินเป็นเรื่องสำคัญอย่างมากต่อจากการสร้างระบบรายงานและจัดเก็บข้อมูลที่ดี – – –โดยวสันต์ ลิ่วลมไพศาลChief Technology Officer, MFEC

admin mfec

admin mfec