Tags:
Node Thumbnail

กูเกิลเปิดเผยซอร์สโค้ดของ 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

Get latest news from Blognone

Comments

By: GoblinKing
Windows PhoneWindows
on 11 July 2008 - 02:03 #58201
GoblinKing's picture

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

By: tekkasit
ContributorAndroidWindowsIn Love
on 11 July 2008 - 07:27 #58221
tekkasit's picture

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

By: mk
FounderAndroid
on 11 July 2008 - 16:08 #58250 Reply to:58221
mk's picture

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

By: hereblur on 12 July 2008 - 11:10 #58353 Reply to:58221

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

By: ipats
ContributorNOOBIn Love
on 11 July 2008 - 16:53 #58258

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

---------- iPAtS


iPAtS

By: sugree
FounderWriterAndroidBlackberry
on 11 July 2008 - 23:07 #58303

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