Должен ли я использовать CORBA, MessagePack RPC или Thrift или что-то еще целиком? - PullRequest
6 голосов
/ 24 августа 2010

Я пишу программное обеспечение для нового аппаратного устройства, к которому я хочу, чтобы любое другое стороннее приложение могло иметь к нему доступ, если они захотят.

Программное обеспечение будет собственным процессом (C ++)это должны проверять сторонние игры и приложения, которые хотят поддерживать аппаратное устройство.Эти сторонние приложения также должны иметь возможность получать события от собственного процесса на основе подписки.Таким образом, помимо собственного процесса, я также буду поставлять библиотеки "соединителей" сторонним разработчикам для всех платформ / языков, которые они могут выбрать (Java, C ++, Python и т. Д.) Для встраивания в свои приложения, чтобы они могли легко подключатьсяк устройству без какого-либо дополнительного кода, нуждающегося в их написании.Я хочу ориентироваться на все платформы ОС для настольных компьютеров и ноутбуков и довольно хорошо представляю, какие функции я хочу представить, но в идеале я не хочу зацикливаться (то есть хочу, чтобы он был элегантно масштабируемым как для клиента, так и для сервера.перспективы).

Я стремлюсь к надежности в будущем, производительности, удобству сопровождения в будущем и кросс-платформенной / языковой гибкости в будущем и простоте разработки в этом порядке.

Чтоя должен использовать?

CORBA, MessagePack-RPC, Thrift или что-то еще целиком?

(я пропустил ICE из-за его лицензирования)

Ответы [ 4 ]

4 голосов
/ 12 сентября 2010

Thrift или Message Pack - лучший вариант в будущем. Оба изящные, легкие и не увеличивают время ожидания. Они поддерживают большинство распространенных языков и находятся в процессе активной разработки. На текущем этапе я бы предпочел, чтобы thrift лично, но пакет сообщений, кажется, обещает много функций.

Мысль о продвижении может быть не такой дружественной для Windows, как мы хотим, но люди используют ее на Windows. Это руководство для начинающих на окнах. http://wiki.apache.org/thrift/ThriftInstallationWin32 Только установка и получение Thrift-компилятора могут быть проблематичными в Windows. Использование сгенерированных файлов зависит от выбранного вами языка, и многие языки имеют хорошую поддержку для запуска файлов путем импорта экономичных библиотек. (Java это очень просто, MAVEN артефакт)

Существует обсуждение возможностей RPC, доступных на Доступны платформы RPC?

CORBA, по-моему, старый, громоздкий и очень тяжелый.

2 голосов
/ 26 августа 2010

Если древние и тяжеловесы не отталкивают вас, устарел, безусловно, следует.В любом случае, я могу рассказать вам о том, что мы недавно использовали в работе буферов протокола Google, и они довольно просты в использовании.

С точки зрения разработчика, все, что вам нужно сделать, это собрать сборку GPB.(что на самом деле не так уж сложно), и тогда он будет генерировать исходные файлы для вас.Конечным результатом является кроссплатформенный двоичный интерфейс передачи сообщений передачи сообщений (например, XML и ограниченный RMI, а не MPI-подобная функциональность).

Мы используем его в Windows для общения с системой Linux на базе Arm (TS)-7200 из встроенного кронштейна) работает под управлением того же программного обеспечения.насколько мне известно, он совместим со многими языками.

1 голос
/ 27 августа 2010

CORBA - это единственная бесплатная программа "RPC", которая сейчас работает для моей системы, даже если она очень плохо масштабируется. Thrift пока не подходит для Windows. MessagePack-RPC также не доступен на всех языках и операционных системах, хотя он все еще находится в разработке. Если бы CORBA был элегантно масштабируемым, он, вероятно, вообще не устарел бы.

Протокол Буферы и обмен сообщениями будут работать, я должен был бы разработать как клиентскую, так и сервисную реализацию для каждой платформы / языка. Это также было бы очень масштабируемым. Я решил это.

0 голосов
/ 21 ноября 2013

В настоящее время я использую Apache Thrift для проекта Hospital Manager.Во многих областях он лучше, чем CORBA, не говоря уже о том, что он легкий и намного проще в реализации и понимании.Кривая обучения для Thrift определенно невелика по сравнению с CORBA, но документация для Thrift - худшая вещь.

Я использую сервер Ruby Thrift, к которому подключаются клиенты Obj-C и Java.Парсер или «компилятор» Thrift довольно хорошо генерирует исходные файлы для языков, которые вы хотите, хотя он слишком многословен.Я бы определенно посмотрел на реализацию Thrift или Google ProtoBuffs, если бы начинал новый проект, поскольку CORBA действительно устарела и может не внедрять новые технологии в будущем, не говоря уже о том, что существует множество уязвимостей и эксплойтов, ориентированных на CORBA, которые неполучите патч, поскольку он больше не находится в разработке, создавая серьезные дыры в безопасности вашего нового проекта.

Thrift поддерживает множество языков программирования: C ++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C #, Objective-C, JavaScript, Node.js, Smalltalk, OCaml и Delphi.Думаю, поддержка нескольких языков является ключевым фактором для вашего проекта.

...