Социальные сети

Сейчас, первоочередной проблемой для меня является налаживание взаимодействия между модулями по необходимой схеме.

Для реализации этой задачи была выбрана сервис-ориентированная схема взаимодействия с одним или несколькими ключевыми модулями, контролирующими обмен данных. В качестве протокола выбраны асинхронные сообщения – как результат взаимодействие асинхронное, основанное на сообщениях.

Сообщения от модуля к модулю будут ходить через брокер, на него возлагается ответственность за:

  • Получение сообщений после их генерации
  • Хранение сообщений
  • Передача сообщений для обработки (и в дальнейшем для получения сгенерированного ответа)
  • Принятие решения о том кому передавать конкретное сообщение (тут есть ещё вопросы, возможно, эта функция будет передана отдельному модулю, который уже будет принимать решение, но пока эта функция тут)

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

С учётом того, что обмен сообщений не требует большой скорости – т.к. большинство модулей – прототипы на скриптовых языках (за исключением одного модуля, которому и требуется скорость получения/передачи сообщений) в качестве хранилища для сообщений решил использовать базу данных MySQL – одна таблица с небольшим кол-вом полей. Этого пока достаточно.

Суть в том, что всё рано или поздно заменится – всё что внутри (и база и язык), а протокол обмена сообщениями и формат – нет. С форматом я уже решил вопрос – был выбран XML: он поддерживается всеми языками, он кросс-платформенен, существует куча инструментария для него и, несмотря на его избыточность, есть методы ОЧЕНЬ скоростной его обработки. Для особых случаев – его можно просто использовать как контейнер для специфичных данных.

А вот с протоколом дела обстоят не так хорошо:

Очевидно, что брокер находится в состоянии постоянной готовности для приёма сообщений, а отправители сами инициируют их отправку.

Вопрос в том, как быть с отправкой сообщений получателям:

  1. Брокер инициирует отправку без подтверждения получения – так модуль растеряет все сообщения для модулей, которые не готовы обрабатывать сообщения (если модуль не содержит в себе буфер, а это очень нехорошо)
  2. Брокер инициирует отправку с подтверждением получения – так брокер постоянно загружен  работой по отправке сообщений медленному модулю
  3. Модуль запрашивает данные – так модуль должен знать, где находится брокер и имеются ли для него сообщения (если это высокопроизводительный модуль, то и опрос он должен производить часто – иначе редкие опросы могут создать вид его медленной работы).

И многие варианты с комбинациями и контраргументами. Прямо настоящая дилемма.

Как вариант думаю рассмотреть реализации существующих брокеров – как реализовано там.

Кандидаты для изучения:

  • Beanstalkd
  • XMPP протокол
  • STOMP протокол
  • AMQP протокол




Последние новости


Шаг 5. Выбираем фирменное наименование организации

Если вы собираетесь регистрировать новое юридическое лицо, то перед вами неизбежно встают необходимость выбора его названия и ряд сопутствующих вопросов. Следует ли проверять выбранное наименование организации на уникальность перед подачей документов на регистрацию? Можно ли зарегистрировать компанию с таким же наименованием, как и у другой, уже существующей орган...
Читать далее »

Шаг 4. Выбор системы налогообложения

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

Аренда помещений

Самым тесным образом с фактическим адресом организации связана Аренда Ею помещений, необходимых для налаживания выбранных видов деятельности. Для деятельности любой организации необходимо помещение. Однако недвижимость стоит сейчас очень дорого, и лишь немногие организации в состоянии приобрести помещение в собственность. В связи с этим значительная част...
Читать далее »

Шаг 3. Выбираем место нахождения организации

МЕСТО НАХОЖДЕНИЯ ОРГАНИЗАЦИИ, ЕЕ ЮРИДИЧЕСКИЙ, ФАКТИЧЕСКИЙ И ПОЧТОВЫЙ АДРЕСА В ГК РФ приведено понятие «место нахождения юридического лица» – так называемый юридический адрес, официально зарегистрированный в ЕГРЮЛ. Однако юридическое лицо может располагаться и по другому адресу – фактическому. В гражданском законодательстве не содержит...
Читать далее »

Карточка

С образцами подписей и оттиска печати ...
Читать далее »

Форма

Документа, подтверждающего наличие лицензии Приложение 26 СЕРТИФИКАТ СООТВЕТСТВИЯ ...
Читать далее »

Уведомление

О регистрации юридического лица в территориальном органе Пенсионного фонда Российской Федерации по месту нахождения На территории Российской Федерации Приложение 22 Свидетельство О регистрации страхователя в территориальном фонде Обязательного медицинского страхования При обязательном мед...
Читать далее »