Маршрутизации сообщений без сохранения состояния



Маршрутизации сообщений без сохранения состояния
Маршрутизации сообщений без сохранения состояния
Маршрутизации сообщений без сохранения состояния
Маршрутизации сообщений без сохранения состояния
Маршрутизации сообщений без сохранения состояния
Маршрутизации сообщений без сохранения состояния
Маршрутизации сообщений без сохранения состояния

Владельцы патента RU 2679340:

РОВИО ЭНТЕРТЕЙНМЕНТ ЛТД (FI)

Изобретение относится к области вычислительной техники для обмена сообщениями. Технический результат заключается в повышении надежности доставки сообщений. Технический результат достигается за счет приема в узле (N) сообщения от первого узла оператора (A) ко второму узлу оператора (A), причем сообщение содержит идентификационный номер первого узла оператора, идентифицирующий первый узел оператора (А), и идентификационный номер второго узла оператора, идентифицирующий второй узел оператора (A); определения в узле (N), используя только идентификационные номера первого и второго узлов оператора, информации об адресе для первого и второго узлов оператора(A); определения, являются ли первый узел оператора (A) и второй узел оператора (A) ассоциированными с одним и тем же узлом; доставки сообщения на второй узел оператора (A), используя информацию об адресе. 3 н. и 10 з.п. ф-лы, 7 ил.

 

Область технического применения

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

Предпосылки создания изобретения

Многие сетевые службы нуждаются в высоком уровне адаптации, самоорганизации, балансировке нагрузки и т.д. Например, при обмене сообщениями в режиме реального времени, при пошаговых многопользовательских играх или других подобных приложениях, очень важно, чтобы сообщения доставлялись в кратчайшие сроки. Поскольку участники в любое время и по своему желанию могут присоединяться и выходить из служб, задача обеспечения надежной и экономически эффективной доставки сообщений является весьма непростой. Сообщения, подлежащие доставке всем участникам сервиса и каждому пользователю, могут быть активны сразу во множестве служб. Доставка всех сообщений всем сторонам является одним из способов, а постоянная доставка состояний общего доступа (таблицы с информацией об адресе маршрутизации) - еще один способом доставки сообщений. Поскольку число сторон может быть огромным, доставка всех сообщений всем таким сторонам не является эффективным способом. Доставка состояний общего доступа также приносит значительные накладные расходы по процессу обмена сообщениями, поскольку число сторон, а также места их расположения изменчивы.

В Патенте США US2012/011068 A1 описывается система и способ электронной и физической категоризации писем и адресной доставки, в Патенте США US8584228 B1 раскрывается аутентификация и шифрование пакетов в виртуальных сетях, публикация международной заявки WO2006/122366 описывает процесс преобразования динамических адресов, а в Патенте США US2013/339475 описываются системы и способы для задержки кластера.

Краткое изложение изобретения

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

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

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

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

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

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

В соответствии с другим примерным вариантом осуществления данный способ дополнительно содержит первый алгоритм, представляющий собой алгоритмы хэширования, и второй алгоритм, представляющий собой алгоритм последовательного хэширования.

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

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

В соответствии с другим примерным вариантом осуществления непереходной компьютерно-читаемый носитель, которая содержит компьютерно-читаемые команды компьютерной программы, причем исполнение команд компьютерной программы при исполнении по меньшей мере одним устройством обработки данных, приводит к:

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

- использованию идентификационного номера узла оператора по меньшей мере в одном математическом алгоритме для определения информации об адресе для узла оператора.

- доставке сообщения на узел оператора, используя информацию об адресе.

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

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

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

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

В соответствии с другим примерным вариантом осуществления, непереходной машиночитаемый носитель информации, закодированный посредством команд, которые при выполнении в виде аппаратных средств, осуществляют процесс, такой процесс заключается в:

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

- использовании идентификационного номера узла оператора по меньшей мере в одном математическом алгоритме для определения информации об адресе для узла оператора.

- доставке сообщения на узел оператора, используя информацию об адресе.

В соответствии с другим примерным вариантом осуществления устройство содержит:

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

- средства для использования идентификационного номера узла оператора по меньшей мере в одном математическом алгоритме для определения информации об адресе для узла оператора;

- средства для доставки сообщения на узел оператора, используя информацию об адресе.

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

Краткое описание чертежей

Варианты осуществления настоящего изобретения проиллюстрированы на фигурах прилагаемых чертежей в качестве примера, а не в качестве исчерпывающего перечня:

На Фигуре 1 изображен пример кластера.

На Фигуре 2 также изображен пример кластера.

На Фигуре 3 дополнительно изображена блок-схема, демонстрирующая пример того, как определяется кластер.

На Фигуре 4 дополнительно изображена блок-схема, демонстрирующая пример того, как доставляется сообщение.

На Фигуре 5 изображен процесс упрощенной доставки сообщений.

На Фигуре 6 изображен пример узлового устройства.

На Фигуре 7 изображен пример сети.

Описание некоторых вариантов осуществления

Следующие варианты осуществления изобретения даны лишь в качестве примеров. Несмотря на то, что описание может относиться к "одному" или "некоторым" варианту (вариантам) осуществления, это вовсе не обязательно означает, что каждая такая ссылка дается на один и тот же вариант(ы) осуществления или, что данный признак применяется только к единственному варианту осуществления. Единственные признаки различных вариантов осуществления могут быть объединены для получения дополнительных вариантов осуществления.

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

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

В контексте настоящего описания термин «узел оператора» относится к вычислительной сущности, способной иметь определенное состояние и, в качестве реакции на событие, например, сообщения, способной изменять такое состояние. Кроме того, узел оператора может быть способен, помимо всего прочего, принимать локальные решения, создавать большее число узлов оператора, отправлять сообщения, а также определить способ реагирования на полученные сообщения. Узел оператора может представлять собой, например:

- пользователя, именуемого в дальнейшем "узел оператора пользователя";

- окно чата, именуемое в дальнейшем "узел оператора окна чата";

- состояние игры, именуемое в дальнейшем "узел оператора состояния игры";

- состояние многопользовательской игры, именуемое в дальнейшем "узел оператора состояния многопользовательской игры".

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

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

В контексте настоящего описания термин "сообщение" относится к объекту коммуникационной связи, содержащему дискретный набор данных, передаваемых от одного узла оператора к другому. Сообщение может содержать, но не ограничиваясь этим, например, идентификационный номер узла оператора, указывающий на узел оператора, отправившего сообщение, и другой идентификационный номер узла оператора, указывающий на узел оператора, получающий сообщение, содержание сообщения и тип сообщения. Тип сообщения может быть записан в содержимое сообщения. Сообщение может быть удобным для восприятия человеком или не удобным для восприятия человеком, и оно может посылаться между узлами оператора (лицами, устройствами, приложениями и любой их комбинацией). Это может быть, например, сообщение в чате от одного пользователя другому пользователю, игровое событие от одного узла оператора к другому, информация, которая доставляется из одного приложения в другое приложение, и т.д.

В контексте настоящего описания термин "виртуальный узел" (virtual node) относится к абстрактной группе узлов оператора. Узел оператора может быть ассоциирован с виртуальным узлом на основе его идентификационного номера узла оператора. Узлы оператора могут быть ассоциированы с виртуальными узлами посредством последовательного алгоритма хэширования.

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

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

В контексте настоящего описания термин "последовательный алгоритм хэширования" относится к оптимизированному виду хэширования информации, при котором задания выполняются с помощью алгоритма, уменьшающего необходимость в переназначении задач при возникновении изменений. При изменении размера кластера, количество виртуальных узлов может ассоциироваться с другими узлами. Виртуальные узлы могут быть ассоциированы с новым узлам или быть повторно ассоциированы с существующим узлам. Размер кластера может изменяться при изменении количества узлов оператора (например, узлов оператора пользователя). Последовательное хэширование сводит к минимуму количество изменений в назначениях виртуальных узла. Для алгоритма необходимо знать число узлов в кластере и некоторую идентификационную информацию по узлам. Поскольку узды являются частью алгоритма, их можно запросить, например, по идентификационной информацией, которая может содержать, например, адрес или уникальный порядковый номер, присвоенный каждому из узлов. Каждый узел в кластере отвечает за группу виртуальных узлов, определяемых последовательным алгоритмом хэширования.

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

В контексте настоящего описания термин "обмен сообщениями узлом оператора" относится к обмену сообщениями между узлами оператора. Существует несколько подходящих масштабируемых технологий обмена сообщениями, например, Акко, Riak, Kafka и т.д., которые могут быть использованы в качестве масштабируемого серверного решения для систем интерактивного общения и игровых серверов, среди прочих. Процесс обмена сообщениями узлом оператора может включать буферизацию сообщений.

В контексте настоящего описания термин "внешний... обмен сообщениями" относится к обмену сообщениями между узлами оператора и клиентами. Существует несколько подходящих технологий обмена сообщениями, например, WebSocket, https и т.д. Клиенты могут использовать функцию внешнего обмена сообщениями при отправке сообщений на узел оператора или при получении сообщений от узлов оператора.

В контексте настоящего описания термин "буфер обмена" относится к объекту для хранения данных в указанной очереди. Объектом может выступать область в объеме памяти, и данные могут быть организованы в соответствии со многими подходящими протоколами обработки очередей сообщений, в том числе RabbitMQ, Kafka и другие подходящие системы буферизации.

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

На Фигуре 1 изображена схема кластера CL, способного обеспечить структуру для выполнения доставки сообщений согласно одному из примеров осуществления изобретения. Данная схема упрощена и включает только одного клиента C1, один узел оператора A1, четыре узла N1 – N4 и восемь виртуальных узлов VN1 – VN8. Число узлов N, виртуальных узлов VN, ассоциированных с узлами N, и узлов оператора A, ассоциированных с виртуальными узлами VN, может варьироваться в зависимости от потребности.

Клиенту С1 необходимо лишь одно соединение с кластером CL. Передача сообщений от и к клиенту C1 выполняется с использованием функции внешней передачи сообщений. В кластере CL виртуальные узлы VN1 – VN8 ассоциированы с узлами N1 – N4 следующим образом:

VN1 и VN2 с N1

VN3 и VN4 с N2

VN5 и VN6 с N3

VN7 и VN8 с N4.

Для каждого клиентского соединения в кластере CL существует соответствующий узел оператора пользователя. На Фигуре 1 клиент C1 имеет соответствующий узел оператора A1 (узел оператора пользователя) в виртуальном узле VN7, который принадлежит к узлу N4.

На Фигуре 2 дополнительно изображается процесс передачи сообщений между клиентами C и узлами оператора А. Пунктирные линии, расположенные между клиентами C1-C6 и узлами оператора A1-A7, изображают внешний обмен сообщениями, а сплошные линии между узлами оператора А изображают обмен сообщениями узлами оператора. Как и на Фигуре 1, каждый клиент С подключен к кластеру CL (не показано на Фигуре 2) посредством одного подключения к соответствующему узлу оператора А.

В целях упрощения иллюстрации, на Фигуре 2 клиенты C и узлы оператора А обозначены именами пользователей. Следует отметить, что один человек может иметь более одного профилей клиента C. Например Сара имеет два профиля клиента, C1 "Сара" и C2 "Сара", подключенные к одному и тому же кластеру CL и ассоциированные с одним и тем же узлом оператора A1 "Сара". Более, чем один клиент С одного и того же человека может существовать на одном и том же или отдельных пользовательских устройствах при одинаковых или различных приложениях, подключенных к кластеру CL. Более того, в некоторых примерных вариантах осуществления, клиентом C может выступать сервер приложения или аналогичный сервер, запускающий большое количество сеансов, которые могут иметь множество активных распределенных узлов оператора А на кластере CL.

Рассмотрим пример, когда два человека, Майк и Сара, играют многопользовательскую игру. Например, они используют мобильные телефоны с беспроводной сетью для получения доступа к игре. Они оба подключены к одному кластеру CL и могут использовать доступные в нем службы. Любое лицо может запустить игровую сессию и пригласить другое лицо присоединиться.

В примере варианта осуществления, изображенном на Фигуре 2, клиент C4 Обозреватель игры ассоциирован с игровым узлом оператора А4 "Майка-Сары-Игра", используя которую, узлы оператора A1 "Сара" и A6 "Майк" обмениваются сообщениями посредством обмена сообщениями узлом оператора. Такие сообщения могут отображать игровые события, относящиеся к текущему состоянию или действию в игре. В случае, если сообщения исходят от или адресованы клиентам С1 "Сара", C2 "Сара", C6 "Майк" или C4 "Обозреватель игры", применяется функция внешнего обмена сообщениями. Как правило: в игровом примере, узлы оператора пользователя принимают на себя задачу обработки входящих и исходящих сообщений для клиентов C и передают сообщения между соответствующими игровыми узлами оператора.

Рассмотрим пример, когда два человека, Том и Майк, общаются в чате, используя любое приложение для обмена сообщениями (мессенджер). Например, они используют ноутбуки с беспроводной сетью для получения доступа к мессенджеру. Они оба подключены к одному кластеру CL и могут использовать доступные в нем службы. Любое лицо может запустить сеанс чата и пригласить другое лицо присоединиться.

В другом варианте осуществления на Фигуре 2 изображено, как клиенты С5 "Том" и C6 "Майк" связаны с узлами оператора пользователей "Том" A5 и "Майк" A6, которые оба подключены к потоку обмена сообщениями узлов оператора A7 "Том-Майк-Чат", который является узлом оператора чата для обмена сообщениями между пользователями Майк и Том. Например, Майк печатает сообщение Майку, используя приложение для чата в своем пользовательском устройстве. Сообщение сначала доставляется на узел оператора A6 "Майк" с использованием функции внешнего обмена сообщениями, а затем, посредством узла оператора сообщение передается от узла оператора A6 "Майк" на узел оператора A7 "Майк-Том-Чат" и пересылается на узел оператора A5 "Том" и, наконец, к клиенту C5 "Том" с использованием функции внешней передачи сообщений. Теперь Том сможет прочитать сообщение, используя свое приложение для чата на своем пользовательском устройстве. Как правило: на примере чата, узлы оператора пользователя принимают на себя задачу обработки входящих и исходящих сообщений для клиентов C и передают сообщения между соответствующими потоками передачи сообщений.

На Фигуре 2 дополнительно изображен пример осуществления изобретения, при котором Линда - клиент C3 “Линда” соединена с узлом оператора пользователя "Линда" A3, который с свою очередь подключен к узлу операторы игры A2 "Линда-Игра". В этом примере пользователь Линда, клиент C3 "Линда", или узел оператора пользователя A3 "Линда" не подключен к любому другому узлу оператора пользователя - только к узлу оператора игры A2 "Линда-Игра".

На Фигуре 3 представлена блок-схема, описывающая примерный способ того, как узлы оператора А и виртуальные узлы VN ассоциированы с узлами N. Число узлов N может варьироваться от одного до n-ого числа. Виртуальные узлы VN ассоциированы с узлами N посредством математического определения (30). Узлы оператора А ассоциированы с виртуальными узлами VN посредством математического определения (31). Математическое определение на обеих стадиях (30 и 31) может использовать одни и те же способы или отличаться. Математическое определение может включать в себя способ последовательного хэширование или другие подходящие способы для осуществления преобразования. Следует отметить, что в некоторых вариантах осуществления узел оператора А может быть ассоциирован непосредственно с узлом N, и необходимость в виртуальном узле VN отсутствует. Стрелками на Фигуре 3 показано, что по меньшей мере некоторые варианты осуществления настоящего изобретения могут быть реализованы при определении кластера CL и по меньшей мере некоторые из них - при доставке сообщений в существующем кластере CL.

Упрощенные примеры, представленные на Фигурах 1 и 2, изображают ситуации, при которых присутствуют лишь немногие клиенты C. При увеличении числа клиентов C и, следовательно, узлов оператора А и узлов N, ситуация становится более сложной. Особенно, если учесть, что клиенты С могут присоединиться и покинуть кластер CL в любой момент, когда они захотят, а также очень важно иметь возможность быстро и эффективно запускать/останавливать его с помощью приложений (генерация/ конечных узлов оператора A), отвечающих за обработку доставки сообщений.

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

Узлы N ассоциированы с целым рядом виртуальных узлов VN. Каждый виртуальный узел VN обладает индивидуальной информацией об адресе, позволяющей определить способ организации виртуальных узлов VN. Понятие "информация об адресе" по отношению к виртуальным узлам VN может представлять собой абстрактное определение того, как организована информация виртуального узла VN в узле N или в кластере CL.

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

Если клиент C хочет подключить, например, к узлу оператора игры в кластере CL, сообщение генерируется приложением, запущенным в пользовательском устройстве клиент C, и посылается на любой узел N в кластере CL с использованием функции внешней передачи сообщений. Сообщение напрямую перенаправляется на правильный виртуальный узел VN, расположенный на правильном N, определяя обозначение узла оператора игры для виртуального узла VN, и на виртуальный узел, расположенный на узле N. Поскольку аналогичный способ используется для всех клиентов С и других субъектов при создании одного узла оператора А, нет необходимости обновлять и разделять явные таблицы маршрутизации, в том числе и адресные данные для всех действующих узлов оператора А. Таблицы маршрутизации - справочные таблицы, которые используются для хранения и обмена информацией об адресах для узлов оператора А в кластере CL. Одним из преимуществ по меньшей мере одного из вариантов осуществления является то, что нет необходимости проводить синхронизацию таблицы маршрутизации относительно того, как ассоциированы каждый виртуальный узел VN и узел оператора A в кластере CL. Поскольку преобразование данных соответствует требованиям, правильный виртуальный узел VN и правильный узел N всегда определяются исключительно посредством математических алгоритмов, из-за чего отпадает необходимость в предоставлении общей таблицы отображения. Отображения могут быть вычислены по ходу дела или же они могут быть определены заранее. Узел N осведомлен о том, какие виртуальные узлы VN принадлежат к каким узлам N, но при этом узлы N не должны взаимодействовать иначе. Другой способ управления передачей сообщениями- всегда отсылать все сообщения на все узлы оператора А, которые могли бы привести к избыточной нагрузке на узлах оператора А и путях передачи сообщений.

На Фигуре 4 изображен примерный вариант осуществления, на котором показан процесс доставки сообщения в виде блок-схемы. На этапе 41 сообщение получено или поступило, сообщение, содержащее по меньшей мере идентификационный номер узла оператора отправителя и идентификационный номер узла оператора получателя, указывающие на узел оператора отправителя и узел оператора получателя сообщения. На этапе 42 используется математический алгоритм для определения того, какой виртуальный узел VN (первый виртуальный узел) ассоциирован с идентификационным номером узла оператора отправителя, и какой виртуальный узел VN (второй виртуальные узел) ассоциирован с идентификационным номером узла оператора получателя. Следует отметить, что определение идентификационных номеров узла оператора на этапе 42 может осуществляться в любом порядке.

На этапе 43 выполняется проверка, ассоциированы ли идентификационный номер узла оператора отправитель и идентификационный номер узла оператора получателя с одним и тем же узлом N.

Если "да" - сообщение доставляется на второй виртуальный узел VN - этап 44, а далее на узел оператора получателя - этап 45.

Если "нет" - с использованием математического алгоритма определить, который узел N ассоциирован со вторым виртуальным узлом VN - этап 46.

В последнем случае сообщение будет доставлено в буфер системы буфера - этап 47. Затем сообщение доставляется или поступает из буфера на второй виртуальный узел VN - этап 48 и, наконец, на узел оператора получателя - этап 49.

На Фигуре 5 изображен примерный вариант осуществления, в котором получено сообщение, содержащее идентификационный номер одного узла оператора, 50. Идентификационный номер узла оператора указывает по меньшей мере частично на один узел оператора А. Использование идентификационного номера узла оператора по меньшей мере в одном математическом алгоритме, 51 для определения информации об адресе для узла оператора и доставки, 52 сообщения на узел оператора с использованием информации об адресе.

На Фигуре 6 изображен пример узлового устройства. Как уже упоминалось ранее, узел N представляет собой физическую вычислительную сущность, способную управлять виртуальными узлами N, ассоциированными с ней. Вычислительной сущностью может выступать устройство, способное провести обработку данных Это может быть сервер-устройство, компьютер или, например, запуск приложения для чата или игрового приложения и т.д. Узловое устройство, 60 содержит запоминающее устройство (ЗУ), 61 для хранения информации, относящейся, например, к виртуальным узлам N, ассоциированным с ним, инструкции о том, как обрабатывать сообщения и т.д. Запоминающее устройство 61 может содержать энергозависимое или энергонезависимое устройство память, например, ЭСППЗУ, ПЗУ, ППЗУ, ОЗУ, ДЗУ, СОЗУ, программы ПЗУ, программируемые логические схемы и т.д.

Узловое устройство 60 дополнительно содержит один или несколько блоков процессора (ЦП), 62 для обработки команд и запуска компьютерных программ и блок интерфейса (БИ), 63 для отправки и получения сообщений.

На Фигуре 7 изображен пример сетевой системы, в которой может быть реализован по меньшей мере один из вариантов осуществления настоящего изобретения. Представленная сетевая система содержит узловое устройство 60, устройство пользователя (пользовательское устройство) 72, сервер-устройство 73 и сеть 71. В данном документе сеть 71 представляет собой любую комбинацию аппаратных и программных компонентов, обеспечивающих обработку данных в одной конечной точке связи для отправки или получения информации в или из другого процесса в другой, удаленной конечной точке связи. Примерами такой сети 61 являются: персональная сеть, локальная вычислительная сеть, домашняя сеть, сеть хранения данных, сеть кампусного типа, сеть магистральных линий связи, сеть мобильной сотовой связи, общегородская вычислительная сеть, глобальная вычислительная сеть, частная сеть предприятия, виртуальная частная сеть или объединенная сеть или комбинация любой из них. Пример сетевой системы, изображенной на Фигуре 7, представляет собой упрощенную иллюстрацию с изображением только одного узлового устройства 60, пользовательского устройства 72 и сервер-устройства 73. Как уже было определено ранее, число устройств может варьироваться. Эти устройства показаны в виде отдельных блоков, но в некоторых вариантах осуществления любое узловое устройство 60, пользовательское устройство 72 или сервер-устройство 73 могут быть реализованы в одном устройстве. Например, сервер-устройство 73 может быть выполнено на узловом устройстве 60 в качестве сервера передачи сообщений, игрового сервера, сервера окна чата и т.д.

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

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

1. Способ доставки сообщений между узлами оператора (A) в масштабируемом кластере (CL) узлов (N), содержащий этапы:

- приема в узле (N) сообщения от первого узла оператора (A) ко второму узлу оператора (A), причем сообщение содержит идентификационный номер первого узла оператора, идентифицирующий по меньшей мере частично первый узел оператора (А), и идентификационный номер второго узла оператора, идентифицирующий по меньшей мере частично второй узел оператора (A);

- определения в узле (N), используя только идентификационные номера первого и второго узлов оператора, информации об адресе для первого и второго узлов оператора(A);

- определения, являются ли первый узел оператора (A) и второй узел оператора (A) ассоциированными с одним и тем же узлом;

- доставки сообщения на второй узел оператора (A), используя информацию об адресе.

2. Способ по п.1, в котором узел N ассоциирован с по меньшей мере одним виртуальным узлом VN.

3. Способ по п.2, в котором определяется информация об адресе по меньшей мере одного виртуального узла VN, и определяется информация об адресе узла N, ассоциированного с виртуальным узлом VN.

4. Способ по п.1, в котором информация об адресе содержит информацию об адресе узла N.

5. Способ по любому из пп.1-4, в котором для определения используется алгоритм последовательного хеширования.

6. Способ по любому из пп.1-4, дополнительно содержащий первичную доставку сообщения на сегмент буфера, ассоциированного с виртуальным узлом VN.

7. Компьютерно-читаемый носитель, включающий в себя одну или более последовательностей одной или нескольких команд, которые, при их исполнении одним или несколькими процессорами, предписывают устройству по меньшей мере выполнять этапы по меньшей мере:

- приема в узле (N) сообщения от первого узла оператора(A) ко второму узлу оператора (A), причем сообщение содержит идентификационный номер первого узла оператора, идентифицирующий по меньшей мере частично первый узел оператора (А), и идентификационный номер второго узла оператора, идентифицирующий по меньшей мере частично второй узел оператора (A);

- определения в узле (N), используя только идентификационные номера первого и второго узлов оператора, информации об адресе для первого и второго узлов оператора(A);

- определения, являются ли первый узел оператора (A) и второй узел оператора (A) ассоциированными с одним и тем же узлом;

- доставки сообщения на второй узел оператора (A), используя информацию об адресе.

8. Компьютерно-читаемый носитель по п.7, в котором информация об адресе содержит информацию об адресе узла (N).

9. Компьютерно-читаемый носитель по п.7, в котором определяется информация об адресе по меньшей мере одного виртуального узла VN, и определяется информация об адресе узла N, связанного с виртуальным узлом (VN).

10. Компьютерно-читаемый носитель по п.7, в котором информация об адресе содержит информацию об адресе узла (N).

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

12. Компьютерно-читаемый носитель по любому из пп.7-10, дополнительно содержащий первичную доставку сообщения на сегмент буфера, ассоциированного с виртуальным узлом (VN).

13. Устройство доставки сообщений между узлами оператора (A) в масштабируемом кластере (CL) узлов (N), содержащее средства для:

- приема сообщения от первого узла оператора (A) ко второму узлу оператора (A), причем сообщение содержит первый идентификационный номер первого узла оператора, идентифицирующий по меньшей мере частично первый узел оператора (А), и второй идентификационный номер второго узла оператора, идентифицирующий по меньшей мере частично второй узел оператора (A);

- определения, используя только идентификационные номера первого и второго узлов оператора, информации об адресе для первого и второго узлов оператора (A);

- определения, являются ли первый узел оператора (A) и второй узел оператора (A) ассоциированными с одним и тем же узлом (N);

- доставки сообщения на второй узел оператора (A), используя информацию об адресе.



 

Похожие патенты:

Изобретение относится к области обеспечения безопасности сетей связи и может быть использовано для защиты серверов услуг от DDoS атак. Техническим результатом является повышение защищенности сервера услуг за счет непрерывного обслуживания соединений из «Белого» списка IP-адресов и дополнительного анализа и корректировки «Черного» списка IP-адресов.

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

Изобретение относится к области коммуникационных технологий. Технический результат заключается в улучшении скорости установления успешной связи «устройство-устройство» (D2D).

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

Изобретение относится к конфигурированию и реализации функции эксплуатации, администрирования и обслуживания (ОАМ). Технический результат – возможность принимать и передавать с высокой скоростью сообщения OAM на аппаратном уровне устройства пересылки.

Изобретение относится к области технологий связи. Технический результат состоит в упрощении процесса конфигурирования устройства связи.

Группа изобретений относится к конфигурированию систем автоматизации. Технический результат - возможность конфигурирования с невысокими затратами модульного устройства управления.

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

Изобретение относится к вычислительной технике. Технический результат заключается в повышении надежности функционирования систем хранения данных (СХД).

Изобретение относится к устройству для реализации системы оценивания трафика через многокаскадную коммутационную сеть. Технический результат – повышение производительности сети.

Группа изобретений относится к вычислительной технике и может быть использована для предоставления устройствам доступа к услугам. Техническим результатом является обеспечение возможности автоматической ассоциации устройств пользователя с субъектом.

Изобретение относится к области мониторинга сети. Технический результат – повышение точности определения присутствия неавторизованной передачи сообщения без потери свойства функционирования в реальном времени.

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

Изобретение относится к мобильной связи. Технический результат - создание устройства (2) мобильной связи и способа управления, включая контроль работой множества исполнительных механизмов, которые не требуется соединять проводами с сетью связи.

Изобретение относится к способу и устройству для доступа к смарт-камере. Технический результат – улучшение безопасности и надежности доступа пользовательского терминала к смарт-камере, для случаев, когда пользовательский терминал не может получить доступ к сети Интернет, а значит, не может получить доступ к смарт-камере через сеть Интернет.

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

Изобретение относится к области вычислительной техники. Техническим результатом является обеспечение обработки распределенного протокола SSM на базе комплексной системы обмена пакетами.

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

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

Изобретение относится к вычислительным устройствам, а более конкретно к графическому пользовательскому интерфейсу (GUI) вычислительного устройства для реализации элементов управления для географической перевозки.

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