กูเกิลเปิดซอร์ส Protocol Buffers ภาษาแลกเปลี่ยนข้อมูล

tags:

กูเกิลเปิดเผยซอร์สโค้ดของ Protocol Buffers ภาษาที่ใช้แลกเปลี่ยนข้อมูลกันภายในกูเกิลเอง

กูเกิลมีแอพพลิเคชันสำหรับประมวลผลข้อมูล-สารสนเทศเป็นจำนวนมาก จึงต้องมีภาษาสำหรับแลกเปลี่ยนข้อมูลระหว่างกัน แต่ XML นั้นมี overhead สูงเมื่อต้องประมวลผลข้อมูลจำนวนมหาศาลแบบกูเกิล ทางออกของกูเกิลคือคิดค้นภาษาแลกเปลี่ยนข้อมูลแบบใหม่ขึ้นมาเองที่ไม่ซับซ้อน และเน้นประสิทธิผลในการส่งข้าม data center จึงออกมาเป็น Protocol Buffers

ตัวข้อมูลที่ส่งกันจริงๆ เรียกว่า message มีหน้าตาดังนี้ (ส่งข้อมูลชนิด int32 ค่า 1 เข้ารหัสแบบ Base 128 Varints)

08 96 01

ผู้ส่งต้องกำหนด schema ของ message (แบบเดียวกับ DTD หรือ XML Schema) ในไฟล์ .proto ซึ่งมีลักษณะเหมือน struct ของ C

message SearchRequest {
  required string query = 1;
  optional int32 page_number = 2;
  optional int32 result_per_page = 3;
}

สิ่งที่กูเกิลเปิดซอร์สออกมารอบนี้คือ ตัวภาษา Protocol Buffers และไลบรารีสำหรับเรียกใช้ผ่าน C++, Java และ Python

ที่มา - Google Open Source Blog ผ่าน PC World

GoblinKing's picture

ตอนแรกอ่านชื่อข่าวผิดว่า “กูเปิดซอร์ส” -.-

tekkasit's picture

สะกดว่า variants รึเปล่าครับ

mk's picture

สะกดแบบนี้จริงๆ ครับ ตอนแรกผมก็เข้าใจว่า variants

hereblur's picture

Var Int(eger)s มั้งครับ

ipats's picture

นั่งงงเอกสารมันอยู่พักใหญ่ ได้ความว่า...
จริงๆ แล้ว 08 96 01 คือ ข้อมูล varint (มันแปลว่าอะไรเนี่ย) เทียบค่าได้ (int32) 150 และมีแท็ก (id) เป็น 1
ที่เรียกว่า base 128 เพราะ 1 byte จะใช้ 7bit (คือ 128 ความเป็นไปได้นั่นเอง)
ส่วนอีกบิตที่เป็น msb จะใช้บอกว่ายังมีข้อมูลมาต่ออีกหรือเปล่า (หลักการคล้ายๆ utf แต่ซับซ้อนน้อยกว่า)

----------
iPAtS

sugree's picture

เล็กขนาดนี้น่าเอามาใส่ mpi

Site Search

 
Web blognone.com

Poll