การส่งเสริม CBOR จุดประกายการถกเถียงเรื่องความจำเป็นของรูปแบบไบนารีและการขาดการเชื่อมโยงกับ MessagePack

ทีมชุมชน BigGo
การส่งเสริม CBOR จุดประกายการถกเถียงเรื่องความจำเป็นของรูปแบบไบนารีและการขาดการเชื่อมโยงกับ MessagePack

บทความรายละเอียดที่ติดตามวิวัฒนาการจาก XML สู่ JSON สู่ CBOR ได้จุดประกายการถกเถียงอย่างเข้มข้นในหมู่นักพัฒนา โดยหลายคนตั้งคำถามว่า CBOR สมควรได้รับความสนใจหรือไม่ และวิพากษ์วิจารณ์การละเว้นความสัมพันธ์กับ MessagePack บทความที่วาง CBOR เป็นรูปแบบข้อมูลสำคัญได้ดึงดูดความสงสัยจากชุมชนเทคนิค

การอ้างว่าส่งเสริม CBOR ทำให้เกิดความสงสัย

นักพัฒนาหลายคนแสดงความกังวลว่าบทความดูเหมือนเนื้อหาการตลาดมากกว่าการวิเคราะห์ทางเทคนิคที่เป็นกลาง นักวิจารณ์ชี้ให้เห็นว่าในขณะที่ XML และ JSON เป็นรูปแบบที่ได้รับการยอมรับอย่างสากล การเรียก CBOR ว่าสำคัญดูเหมือนเร็วเกินไปเมื่อเปรียบเทียบกับรูปแบบไบนารีที่มีการใช้งานมากกว่า เช่น Protocol Buffers, Apache Avro และ Cap'n Proto นักพัฒนาหลายคนยอมรับว่าไม่เคยพบ CBOR ในการปฏิบัติงานจริง โดยมีคนหนึ่งระบุว่าการสัมผัสครั้งเดียวคือระหว่างการพัฒนา QR code passport ในยุค COVID

ช่วงเวลาและน้ำเสียงของบทความทำให้บางคนตั้งคำถามเกี่ยวกับแรงจูงใจในการส่งเสริมรูปแบบที่ยังคงเป็นช่องว่างค่อนข้างเล็ก อย่างไรก็ตาม ผู้สนับสนุนโต้แย้งว่าบทบาทของ CBOR ในมาตรฐานใหม่ ๆ เช่น WebAuthn และการรับรองความถูกต้อง FIDO2 ที่จัดการการแลกเปลี่ยน passkey แสดงให้เห็นถึงความสำคัญที่เพิ่มขึ้นในโปรโตคอลความปลอดภัย

กรณีการใช้งานและการนำ CBOR มาใช้

  • WebAuthn/FIDO2: ใช้สำหรับการแลกเปลี่ยนข้อมูลการยืนยันตัวตน passkey
  • โปรโตคอล CoAP: ทางเลือก HTTP ที่มีน้ำหนักเบาสำหรับอุปกรณ์ IoT
  • COSE: CBOR Object Signing and Encryption สำหรับความปลอดภัย
  • การจัดการอุปกรณ์ IoT: โปรโตคอล OMA-DM/LWM2M
  • การแสดงใบรับรอง: ใบรับรอง C509 compact X.509
  • บริการ AWS: เริ่มสนับสนุนใน API ที่ใช้ข้อมูลหนัก (2025)

ข้อได้เปรียบหลัก:

  • ขนาดข้อความเล็กกว่า JSON โดยไม่ต้องบีบอัด
  • รูปแบบที่อธิบายตัวเอง (ไม่ต้องใช้ schema)
  • สามารถขยายได้ผ่าน semantic tags ที่ลงทะเบียนกับ IANA
  • ปรับให้เหมาะสมสำหรับสภาพแวดล้อมที่จำกัด/IoT

การขาดการเชื่อมโยง MessagePack เป็นสัญญาณเตือนภัย

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

ก็ CBOR คือ MessagePack นั่นแหละ Carsten Bormann แยก MessagePack ออกมา เปลี่ยนค่าแท็กบางตัว เขียนมาตรฐานรอบ ๆ มัน และส่งไปยัง IETF โดยขัดต่อความปรารถนาของผู้สร้าง MessagePack

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

การเปรียบเทียบการบีบอัดขาดหายไปอย่างเห็นได้ชัด

ประเด็นที่ถกเถียงกันอีกประการหนึ่งเกี่ยวข้องกับการขาดการเปรียบเทียบระหว่าง CBOR และ JSON ที่บีบอัด ในขณะที่บทความส่งเสริมข้อได้เปรียบด้านขนาดของ CBOR เหนือ JSON ธรรมดา มันไม่ได้กล่าวถึงว่า CBOR ทำงานได้อย่างไรเมื่อเทียบกับ JSON ที่ใช้เทคนิคการบีบอัดมาตรฐาน เช่น gzip หรือ zstd ซึ่งถูกใช้งานอย่างแพร่หลายและโปร่งใสต่อผู้ใช้ การละเว้นนี้ดูเหมือนจะมีนัยสำคัญเป็นพิเศษ เนื่องจากการบีบอัดถูกใช้กันทั่วไปในแอปพลิเคชันเว็บและสามารถลดช่องว่างขนาดที่ CBOR อ้างว่าเป็นข้อได้เปรียบได้อย่างมาก

การขาดการเปรียบเทียบนี้ทำให้บางคนแนะนำว่ามันถูกแยกออกโดยเจตนาเพื่อรักษาเรื่องเล่าที่เอื้ออำนวยสำหรับ CBOR คล้ายกับวิธีที่ผลิตภัณฑ์ที่แข่งขันกันหลีกเลี่ยงการเน้นจุดแข็งของคู่แข่งในเนื้อหาการตลาดของพวกเขา

การเปรียบเทียบ CBOR กับ JSON กับ XML

คุณสมบัติ XML JSON CBOR
ประเภทรูปแบบ ภาษามาร์กอัปสำหรับเอกสาร รูปแบบการแลกเปลี่ยนข้อมูล รูปแบบข้อมูลแบบไบนารี
อ่านได้ด้วยมนุษย์ ได้ ได้ ไม่ได้
ขนาดข้อความ ใหญ่ที่สุด (แท็กที่ยาวเยิ่น) ปานกลาง เล็กที่สุด (การเข้ารหัสแบบไบนารี)
ความเร็วในการแยกวิเคราะห์ ช้าที่สุด (การแยกวิเคราะห์ที่ซับซ้อน) เร็ว เร็วที่สุด (การถอดรหัสแบบไบนารี)
การรองรับเบราว์เซอร์ดั้งเดิม ใช่ ใช่ ไม่ใช่
การรองรับ Schema DTD, XSD JSON Schema แท็กเชิงความหมาย
ความคิดเห็น ใช่ ไม่ใช่ ไม่ใช่
ข้อมูลไบนารี ต้องการการเข้ารหัส Base64 ต้องการการเข้ารหัส Base64 รองรับแบบดั้งเดิม

การตรวจสอบความเป็นจริงของการยอมรับรูปแบบไบนารี

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

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

บทสรุป

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

อ้างอิง: From XML to JSON to CBOR