URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 42777
[ Назад ]

Исходное сообщение
"OpenNews: Google опубликовал протокол обмена данными 'Protocol Buffers'"

Отправлено opennews , 09-Июл-08 01:03 
Google открыл (http://google-opensource.blogspot.com/2008/07/protocol-buffe... для всеобщего пользования RPC (http://ru.wikipedia.org/wiki/Remote_Procedure_Call) протокол обмена данными Protocol Buffers (http://code.google.com/p/protobuf/). <i> «Практически все внутри Google использует Protocol Buffers»</i>, написано в FAQ (http://code.google.com/apis/protocolbuffers/docs/faq.html). <i> «Мы бы хотели сделать открытыми многие другие наши проекты, но для этого мы должны были прежде опубликовать Protocol Buffers»</i>.

Google использует множество различных типов данных, которые передаются в виде сообщений между серверами. Большинство из них имеют иерархическую структуру, которую необходимо представлять в определенном виде. Использование XML (http://ru.wikipedia.org/wiki/Xml) в этом случае неэффективно, так как когда сеть и узлы работают на полную мощность, обработка XML отнимает слишком много ресурсов. Кроме того, код для работы с деревом DOM (http:/...

URL: http://google-opensource.blogspot.com/2008/07/protocol-buffe...
Новость: http://www.opennet.me/opennews/art.shtml?num=16867


Содержание

Сообщения в этом обсуждении
"я не понял.."
Отправлено ieroglif , 09-Июл-08 01:03 
они json что ли изобрели? двоеточие на равно поменяли? или я все-же чего-то не понял?..

"я не понял.."
Отправлено Veter , 09-Июл-08 01:54 
Это они тикль изобрели.

Так у гугла
  person {
    name = "John Doe"
    email = "jdoe@example.com"
  }

А так на тикле
  person {
    name "John Doe"
    email "jdoe@example.com"
  }

То есть в таком виде это будет тиклевский код и обрабатывается интерпретатором.
Если заменить фигурные скобочки на простые, то получится лисп, тоже позволяет строку интерпретировать как код. Интерпретаторы есть на чем угодно от С до яваскрипт.
Кстати, в AOL Web Server давно уже реализована возможность посылать сообщения, представляющие собой тиклевский код (именно код, не только данные, что предоставляет очень широкие возможности). А первая реализация для тикля, которую я видел, сделана еще в далеких 90-х и на ней, что интересно, написан вариант системы репликации постгреса (притом, похоже, единственный, имеющий математическое описание).


"я не понял.."
Отправлено капитан очевидность , 09-Июл-08 02:23 
person {
    name = "John Doe"
    email = "jdoe@example.com"
}
это лишь описание структуры. потом на основе него строятся парсеры под бинарные форматы.
они говорят, что такая запись будет в бинарном виде занимать 28 байт. это по два байта оверхеда на поле. и парсится за 100нс.

"я не понял.."
Отправлено User294 , 09-Июл-08 18:49 
> По словам Google, Protocol Buffers от трех до десяти раз компактнее при выигрыше в
> скорости от 20 до 100 раз, по сравнению с XML

Кстати да, пользуясь случаем передаю отдельные приветы жабберу с его пухлыми XML-ками :)


"Может, так понятнее?"
Отправлено smb , 09-Июл-08 02:36 
Не совсем. Они ввели язык для определения типов сообщенией(.proto-файлы), он действительно схож с JSON, но это же не всё :) Далее, так как просто такой язык - байан и неудобно, то написали для него маппер на классы C++/Java/etc(в их терминологии компилятор) с возможностью сериализации в бинарный вид. Далее, поддерживается обратная совместимость форматов - т.е. можно ввести новые поля и ничего не сломается, + еще на базе этого формата гугловцы сделали RPC.
Вроде немало, а по удобству+скорости=качеству - совсем хорошо получается :)

"Может, так понятнее?"
Отправлено Oles , 10-Июл-08 09:07 
Скомпилированый жсон да и сериализуемые классы. Как по мне жсон прикольнее.

"я не понял.."
Отправлено szh , 09-Июл-08 05:35 
> они json что ли изобрели? двоеточие на равно поменяли?

и траффик уменьшили в 10 раз. Траффик == деньги.


"я не понял.."
Отправлено User294 , 09-Июл-08 18:54 
>и траффик уменьшили в 10 раз. Траффик == деньги.

Просто если сервак при прочих равных сможет в 10 раз больше, значит будет надо вдесятеро меньше серверов.Тут все просто.А XML сцуко сложный в парсинге и вообще обладает рядом неприятных свойств.Скажем размер записи вообще заранее неизвестен.И если вдруг запись весит гиг а нам в облом столько парсить - заранее узнать что нас ждет нельзя.А значит парсер будет колупать весь гиг, медленно и печально.XML хорош для некоторых вещей, но для некоторых других он выглядит как микроскоп при забивании гвоздей.


"Google опубликовал протокол обмена данными 'Protocol Buffers'"
Отправлено frewq , 09-Июл-08 07:33 
Интересно, чем Protocol Buffers лучше ASN.1 с BER, DER и PER ?

"Google опубликовал протокол обмена данными 'Protocol Buffers'"
Отправлено alex , 09-Июл-08 09:56 
Похоже, взяли разумные идеи из CORBA и реализовали как надо.

"Google опубликовал протокол обмена данными 'Protocol Buffers..."
Отправлено penguin_antarctic , 09-Июл-08 10:06 
До ICE ( который Internet Communication Engine ) им еще далеко.

"Google опубликовал протокол обмена данными 'Protocol Buffers'"
Отправлено Pilat , 09-Июл-08 10:24 
Вы, парни (и девушки) не понимаете главного. Если Google говорит, что у него всё на этом протоколе _работает_, и работает хорошо - это авторитетное заявление и к нему надо прислушаться. А заявления типа "баян", "да это тикль", "да это Corba", "до ICE далеко" - это трёп, который не имеет никаких оснований приниматься во внимание.

"Google опубликовал протокол обмена данными 'Protocol Buffers..."
Отправлено smb , 09-Июл-08 11:18 
Это само собой =) Называется авторитет. У гугла он есть, и очень большой. По сути - согласен.

"Google опубликовал протокол обмена данными 'Protocol Buffers..."
Отправлено Veter , 09-Июл-08 12:40 
"Это значит - не надо за мной. Колея эта только моя, выбирайтесь своей колеёй." (С)

"Google опубликовал протокол обмена данными 'Protocol Buffers'"
Отправлено kantemirov , 09-Июл-08 10:49 
прошу аргументировать свои "наезды" ))

"Google опубликовал протокол обмена данными 'Protocol Buffers'"
Отправлено Аноним , 09-Июл-08 13:32 
ждем реализацию на перле, и, возможно, на пошапе

"Google опубликовал протокол обмена данными 'Protocol Buffers..."
Отправлено Аноним , 09-Июл-08 13:33 
>ждем реализацию

хм, точнее, реализацию поддержки ^ конечно )



"Google опубликовал протокол обмена данными 'Protocol Buffers..."
Отправлено uldus , 09-Июл-08 13:59 
>ждем реализацию на перле, и, возможно, на пошапе

Для Perl модуль уже один человек взялся писать.


"Google опубликовал протокол обмена данными 'Protocol Buffers..."
Отправлено Аноним , 09-Июл-08 15:24 
Жаль для Native C порта нет

"OpenNews: Google опубликовал протокол обмена данными 'Protoc..."
Отправлено Аноним , 09-Июл-08 19:02 
А под какой это лицензией? Я чёт так и не нашел...

"OpenNews: Google опубликовал протокол обмена данными 'Protoc..."
Отправлено Aleksey , 09-Июл-08 20:27 
>А под какой это лицензией? Я чёт так и не нашел...

Apache License 2.0

P.S. Это есть на сайте проекта http://code.google.com/p/protobuf/


"OpenNews: Google опубликовал протокол обмена данными 'Protoc..."
Отправлено Аноним , 09-Июл-08 22:52 
Спасибо. Не добрался до этой страницы.

"OpenNews: Google опубликовал протокол обмена данными 'Protoc..."
Отправлено nuclight , 10-Июл-08 16:53 
Вообще, конечно, молодцы, ибо http://c2.com/cgi/wiki?XmlSucks

Но не совсем понятно, чем их не устроил ASN.1, под который уже дофига всего разработано (и который пиарит себя как наиболее совершенное решение). Те же типы (в отличие от XML), те же парсеры для кучи языков, то же компактное бинарное представление (более эффетивное, чем XML). Разве что синтаксис привычнее?..


"OpenNews: Google опубликовал протокол обмена данными 'Protoc..."
Отправлено Forth , 04-Авг-08 14:38 
Кто знает, rpc на базе этого protobuf с поддержкой какой-либо авторизации и шифрования, или нет?