Что такое Grid Ops?

В сообщении [1] мы представили Grid Ops как набор инструментов Java с открытым исходным кодом для создания передовых распределенных систем. Мы также писали, что Grid Ops состоит из набора основных инструментов для реализации распределенных систем в целом и набора часто используемых сервисов инфраструктуры распределенных систем.

Наша миссия — помочь разработчикам настроить и запустить распределенные системы, написав всего несколько строк кода. Хотя мы начали с реализации Java, в будущем мы надеемся реализовать реализации на других языках, таких как C# и D. Основными компонентами Grid Ops являются:

  • Tcp-сервер
  • TcpSocketsPort
  • Хост
  • Контейнер узла

Эти четыре компонента составляют основу Grid Ops, как показано ниже:

1. TcpServer — это один из способов ввода сообщения в Host. Host читает сообщения через TcpSocketsPort и передает их NodeContainer.

2. TcpSocketsPort внутренне управляет одним или несколькими сокетами TCP. Эти сокеты TCP могут исходить от TcpServer или открываться приложением как клиентские соединения (исходящие соединения). Таким образом, TcpSocketsPort можно использовать как интерфейс для входящих и исходящих соединений, то есть как интерфейс для сервера и клиента.

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

В двух словах, класс NodeContainer в функциях Grid Ops может направлять входящие сообщения компонентам, которые должны их обрабатывать. NodeContainer просматривает идентификатор узла во входящем сообщении и пересылает сообщение соответствующему NodeReactor. NodeReactor просматривает идентификатор семантического протокола + версию и перенаправляет сообщение в соответствующий реактор протокола. Реактор протокола просматривает тип входящего сообщения и пересылает сообщение соответствующему реактору сообщений.

Сообщения принимаются извне, как правило, через TcpServer и TcpSocketsPort, а затем передаются NodeContainer, который внутренне направляет сообщения правильному MessageReactor (через NodeReactor и ProtocolReactor экземпляров).

Что насчет тем?

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

У Host также есть собственный поток, который извлекает сообщения из TcpSocketsPort и передает их NodeContainer. Существует метод NodeContainer react(), который вызывается тем же потоком, который выполняет цикл Host. Таким образом, чтение и обработка сообщений происходит одним и тем же потоком. Таким образом, разработчики могут кодировать свои реакторы узлов, реакторы протоколов и реакторы сообщений, предполагая однопоточную модель параллелизма.

Обзор стека Grid Ops

На этом пока все, мы продолжим с более подробной информацией в следующих постах. Если вы хотите поиграть с Grid Ops, посетите нашу страницу Github и код, пожалуйста, проверьте здесь. Мы готовимся к запуску некоторых сервисов, если вы хотите получить приглашение на бета-тестирование, пожалуйстаSubscribe here.

Hacker Noon — это то, как хакеры начинают свой день. Мы являемся частью семьи @AMI. Сейчас мы принимаем заявки и рады обсудить возможности рекламы и спонсорства.

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