เปิดตัว EdgeX 2.0 ซึ่งเป็นแพลตฟอร์มแบบเปิดแบบโมดูลาร์สำหรับเปิดใช้งานการทำงานร่วมกันระหว่างอุปกรณ์ IoT แอปพลิเคชัน และบริการ แพลตฟอร์มดังกล่าวไม่ได้เชื่อมโยงกับฮาร์ดแวร์และระบบปฏิบัติการของผู้จำหน่ายรายใดรายหนึ่ง และได้รับการพัฒนาโดยคณะทำงานอิสระภายใต้การอุปถัมภ์ของ Linux Foundation ส่วนประกอบของแพลตฟอร์มเขียนด้วยภาษา Go และเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0
EdgeX ช่วยให้คุณสร้างเกตเวย์ที่เชื่อมต่อกับอุปกรณ์ IoT ที่มีอยู่และรวบรวมข้อมูลจากเซ็นเซอร์ต่างๆ เกตเวย์จัดระเบียบการโต้ตอบกับอุปกรณ์และดำเนินการประมวลผลหลัก การรวมกลุ่ม และการวิเคราะห์ข้อมูล โดยทำหน้าที่เป็นตัวเชื่อมโยงระดับกลางระหว่างเครือข่ายของอุปกรณ์ IoT และศูนย์ควบคุมในพื้นที่หรือโครงสร้างพื้นฐานการจัดการระบบคลาวด์ เกตเวย์ยังสามารถเรียกใช้ตัวจัดการที่บรรจุเป็นไมโครเซอร์วิสได้ การโต้ตอบกับอุปกรณ์ IoT สามารถจัดระเบียบผ่านเครือข่ายแบบมีสายหรือไร้สายโดยใช้เครือข่าย TCP/IP และโปรโตคอลเฉพาะ (ไม่ใช่ IP)
เกตเวย์สำหรับวัตถุประสงค์ที่แตกต่างกันสามารถรวมกันเป็นลูกโซ่ได้ เช่น เกตเวย์ของลิงก์แรกสามารถแก้ปัญหาการจัดการอุปกรณ์ (การจัดการระบบ) และความปลอดภัย และเกตเวย์ของลิงก์ที่สอง (เซิร์ฟเวอร์หมอก) สามารถจัดเก็บข้อมูลขาเข้า ทำการวิเคราะห์ได้ และให้บริการ ระบบเป็นแบบโมดูลาร์ ดังนั้นฟังก์ชันการทำงานจึงแบ่งออกเป็นแต่ละโหนดโดยขึ้นอยู่กับโหลด ในกรณีง่ายๆ เกตเวย์เดียวก็เพียงพอแล้ว แต่สำหรับเครือข่าย IoT ขนาดใหญ่ คลัสเตอร์ทั้งหมดสามารถปรับใช้ได้
EdgeX ขึ้นอยู่กับสแต็ก Fuse IoT แบบเปิด ซึ่งใช้ใน Dell Edge Gateways สำหรับอุปกรณ์ IoT แพลตฟอร์มนี้สามารถติดตั้งได้บนฮาร์ดแวร์ใดๆ รวมถึงเซิร์ฟเวอร์ที่ใช้ซีพียู x86 และ ARM ที่ใช้ Linux, Windows หรือ macOS โปรเจ็กต์นี้ประกอบด้วยไมโครเซอร์วิสสำเร็จรูปที่ได้รับการคัดสรรสำหรับการวิเคราะห์ข้อมูล ความปลอดภัย การจัดการ และการแก้ปัญหาต่างๆ สามารถใช้ภาษา Java, Javascript, Python, Go และ C/C++ เพื่อพัฒนาไมโครเซอร์วิสของคุณเองได้ มีการเสนอ SDK สำหรับการพัฒนาไดรเวอร์สำหรับอุปกรณ์ IoT และเซ็นเซอร์
การเปลี่ยนแปลงที่สำคัญ:
- มีการนำเว็บอินเตอร์เฟสใหม่มาใช้ ซึ่งสร้างขึ้นโดยใช้เฟรมเวิร์ก Angular JS ข้อดีของ GUI ใหม่คือความง่ายในการบำรุงรักษาและการขยายฟังก์ชันการทำงาน การมีอยู่ของวิซาร์ดสำหรับการเชื่อมต่ออุปกรณ์ใหม่ เครื่องมือสำหรับการแสดงภาพข้อมูล อินเทอร์เฟซที่ได้รับการปรับปรุงอย่างมีนัยสำคัญสำหรับการจัดการข้อมูลเมตา และความสามารถในการตรวจสอบสถานะของบริการ (หน่วยความจำ ปริมาณการใช้, โหลด CPU ฯลฯ)
- เขียน API ใหม่ทั้งหมดเพื่อทำงานกับไมโครเซอร์วิส ซึ่งขณะนี้เป็นอิสระจากโปรโตคอลการสื่อสาร มีความปลอดภัยมากขึ้น มีโครงสร้างที่ดี (ใช้ JSON) และติดตามข้อมูลที่ประมวลผลโดยบริการได้ดียิ่งขึ้น
- เพิ่มประสิทธิภาพและความสามารถในการสร้างการกำหนดค่าแบบน้ำหนักเบา ขณะนี้องค์ประกอบ Core Data ซึ่งมีหน้าที่รับผิดชอบในการบันทึกข้อมูล เป็นทางเลือกแล้ว (เช่น สามารถยกเว้นได้เมื่อคุณต้องการประมวลผลข้อมูลจากเซ็นเซอร์เท่านั้นโดยไม่จำเป็นต้องบันทึก)
- เพิ่มความน่าเชื่อถือและขยายเครื่องมือในการรับประกันคุณภาพการบริการ (QoS) เมื่อถ่ายโอนข้อมูลจากบริการอุปกรณ์ (Device Services รับผิดชอบในการรวบรวมข้อมูลจากเซ็นเซอร์และอุปกรณ์) ไปยังบริการประมวลผลข้อมูลและการสะสม (Application Services) ตอนนี้คุณสามารถใช้บัสข้อความ (Redis Pub/Sub, 0MQ หรือ MQTT) โดยไม่ต้องผูกมัด เป็น HTTP - โปรโตคอล REST และการปรับลำดับความสำคัญ QoS ในระดับนายหน้าข้อความ รวมถึงการถ่ายโอนข้อมูลจากบริการอุปกรณ์ไปยังบริการแอปพลิเคชันโดยตรงโดยมีตัวเลือกการทำซ้ำไปยังบริการ Core Data การรองรับการถ่ายโอนข้อมูลผ่านโปรโตคอล REST จะยังคงอยู่ แต่จะไม่ได้ใช้ตามค่าเริ่มต้น
- โมดูลสากล (ผู้ให้บริการความลับ) ถูกนำมาใช้เพื่อดึงข้อมูลลับ (รหัสผ่าน กุญแจ ฯลฯ) จากที่เก็บข้อมูลที่ปลอดภัย เช่น ห้องนิรภัย
- เครื่องมือกงสุลใช้เพื่อรักษารีจิสทรีของบริการและการตั้งค่า ตลอดจนจัดการการเข้าถึงและการตรวจสอบสิทธิ์ API Gateway ให้การสนับสนุนการเรียก Consul API
- ลดจำนวนกระบวนการและบริการที่ต้องใช้สิทธิ์รูทในคอนเทนเนอร์ Docker ให้เหลือน้อยที่สุด เพิ่มการป้องกันการใช้ Redis ในโหมดไม่ปลอดภัย
- การกำหนดค่า API Gateway (Kong) แบบง่าย
- โปรไฟล์อุปกรณ์ที่ง่ายขึ้น ซึ่งกำหนดพารามิเตอร์ของเซ็นเซอร์และอุปกรณ์ ตลอดจนข้อมูลเกี่ยวกับข้อมูลที่รวบรวม โปรไฟล์สามารถกำหนดได้ในรูปแบบ YAML และ JSON
- เพิ่มบริการอุปกรณ์ใหม่:
- CoAP (เขียนด้วยภาษา C) พร้อมการนำ Constrained Application Protocol ไปใช้
- GPIO (เขียนในภาษา Go) สำหรับการเชื่อมต่อกับไมโครคอนโทรลเลอร์และอุปกรณ์อื่นๆ รวมถึงบอร์ด Raspberry Pi ผ่านพอร์ต GPIO (อินพุต/เอาต์พุตพินทั่วไป)
- LLRP (เขียนใน Go) พร้อมการนำโปรโตคอล LLRP (Low Level Reader Protocol) ไปใช้สำหรับการเชื่อมต่อกับเครื่องอ่านแท็ก RFID
- UART (เขียนใน Go) พร้อมรองรับ UART (เครื่องรับ/ส่งสัญญาณแบบอะซิงโครนัสสากล)
- ความสามารถของ Application Services ซึ่งรับผิดชอบในการเตรียมและส่งออกข้อมูลสำหรับการประมวลผลในภายหลังในระบบคลาวด์และแอปพลิเคชัน ได้รับการขยายออกไป เพิ่มการสนับสนุนสำหรับการกรองข้อมูลจากเซ็นเซอร์ตามชื่อโปรไฟล์อุปกรณ์และประเภททรัพยากร มีการนำความสามารถในการส่งข้อมูลไปยังผู้รับหลายรายด้วยบริการเดียวและสมัครใช้บริการบัสข้อความหลายรายการ มีการเสนอเทมเพลตเพื่อสร้างบริการแอปพลิเคชันของคุณเองอย่างรวดเร็ว
- หมายเลขพอร์ตที่เลือกสำหรับไมโครเซอร์วิสนั้นสอดคล้องกับช่วงที่แนะนำโดย Internet Assigned Numbers Authority (IANA) สำหรับการใช้งานส่วนตัว ซึ่งจะหลีกเลี่ยงความขัดแย้งกับระบบที่มีอยู่
ที่มา: opennet.ru