Лучший подход для мелкого масштаба распределил приложения C++

Я изучаю то же понятие и нашел, что эта многообещающая статья Joel Pobar,

Создают Языковой компилятор для Платформы.NET - не уверенный, куда это пошло

, Создают Языковой компилятор для Платформы.NET - копия PDF исходного документа

, он обсуждает понятие высокого уровня компилятора и продолжает изобретать свой собственный язык для.Net платформы. Хотя ее нацеленный на.Net Платформу, многие понятия должны быть в состоянии быть воспроизведенными. Покрытия Статьи:

  1. Сканер определения
  2. Langauge
  3. Синтаксический анализатор (бит я главным образом интересуюсь)
  4. Предназначение для.Net Платформы
  5. Генератор кода

существует другие темы, но Вы получаете справедливое.

Его нацеленный людям, начинающим, записанный в C# (не совсем Java)

кости HTH

5
задан Sundar 27 July 2009 в 18:34
поделиться

5 ответов

Буферы протокола кажутся подходящими, поддерживаются в C ++, кроссплатформенны, разработаны для обеспечения высокой производительности.

6
ответ дан 18 December 2019 в 07:10
поделиться

MPI был создан для этого и, безусловно, проще в использовании, чем Corba и т. Д.
И оно масштабируется, когда вы обнаруживаете, что ваше небольшое распределенное приложение становится очень большим распределенным приложением!

5
ответ дан 18 December 2019 в 07:10
поделиться

Почему бы и нет используйте http POST ?

  • Легкий, насколько вам нужно (откройте сокет, отправьте строку POST), или, если вам нужна надежность, используйте библиотеку http.
  • Легко управлять разрешениями на стороне сервера (просто используйте apache или iis)
  • Встроенное ведение журнала (на стороне веб-сервера)
  • Нет проблем с масштабированием (веб-серверы решили эти проблемы)
  • Обычно системам не требуются разрешения для HTTP-сокетов (xp делает для сырых сокетов).
  • Пары ключ / значение для идентификации полей и данных.
  • Вы можете проверить это, используя плагины Firefox.
  • Если скорость важна, вы можете легко установить тайм-аут и повторно отправить.
  • Вам не нужно беспокоиться о брандмауэрах, поскольку http почти всегда разрешен по умолчанию.
  • Простая отладка с помощью сниффера порта.
  • ] Весь код на стороне сервера и большая часть кода на стороне клиента написаны для вас.
4
ответ дан 18 December 2019 в 07:10
поделиться

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

3
ответ дан 18 December 2019 в 07:10
поделиться

Я бы посмотрел на Spread Toolkit . Ну, это C, но существуют привязки C ++ , и также легко откатить свои собственные. Ваше звучит очень похоже на некоторые проекты, в которых я использовал его с большим успехом (хотя и без каких-либо привязок).

С веб-сайта проекта:

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

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

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

Некоторые из услуг и преимуществ, предоставляемых Spread:

  • Надежный и масштабируемый обмен сообщениями и групповая связь.
  • Очень мощный, но простой API упрощает построение распределенных архитектур.
  • Простота использования, развертывания и обслуживания.
  • Высокая масштабируемость от одной локальной сети до сложных глобальных сетей.
  • Поддерживает тысячи групп с различным набором членов.
  • Обеспечивает надежность сообщений при сбоях машины, сбоях процессов и восстановлениях, а также при разделах и слияниях сети.
  • Предоставляет ряд гарантий надежности, упорядоченности и стабильности сообщений.
  • Акцент на надежность и высокую производительность.
  • Полностью распределенные алгоритмы без центральной точки отказа.

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

(Нет, я никоим образом не работаю над проектом.

3
ответ дан 18 December 2019 в 07:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: