МАРШРУТИЗАЦИИ СООБЩЕНИЙ БЕЗ СОХРАНЕНИЯ СОСТОЯНИЯ
STATELESS MESSAGE ROUTING

Область технического применения
Примеры осуществления настоящего изобретения относятся к процессу обмена сообщениями в масштабируемом кластере. Более конкретно, примеры осуществления настоящего изобретения относятся к способам, устройствам и ассоциированным с ними компьютерным программным продуктам, для определения масштабируемого кластера и процесса доставки сообщений внутри него. Примеры осуществления настоящего изобретения могут применяться к узлу оператора на основе сообщений.
Предпосылки создания изобретения
Многие сетевые службы нуждаются в высоком уровне адаптации, самоорганизации, балансировке нагрузки и т.д. Например, при обмене сообщениями в режиме реального времени, при пошаговых многопользовательских играх или других подобных приложениях, очень важно, чтобы сообщения доставлялись в кратчайшие сроки. Поскольку участники в любое время и по своему желанию могут присоединяться и выходить из служб, задача обеспечения надежной и экономически эффективной доставки сообщений является весьма непростой. Сообщения, подлежащие доставке всем участникам сервиса и каждому пользователю, могут быть активны сразу во множестве служб. Доставка всех сообщений всем сторонам является одним из способов, а постоянная доставка состояний общего доступа (таблицы с информацией об адресе маршрутизации) - еще один способом доставки сообщений. Поскольку число сторон может быть огромным, доставка всех сообщений всем таким сторонам не является эффективным способом. Доставка состояний общего доступа также приносит значительные накладные расходы по процессу обмена сообщениями, поскольку число сторон, а также места их расположения изменчивы.
В Патенте США 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 в качестве сервера передачи сообщений, игрового сервера, сервера окна чата и т.д.
Несмотря на то, что различные аспекты настоящего изобретения проиллюстрированы и описаны в виде блок-схем, схем потока сообщений, графиков и схем логического потока, либо с использованием других графических презентаций, все хорошо понимают, что представленные узлы, блоки, устройства, элементы системы, процедуры и способы могут быть реализованы, например, в виде аппаратных средств, программного обеспечения, встроенного ПО, схем специального назначения или логических схем, вычислительного устройства или некоторой их комбинации.
Совершенно очевидно для специалиста в этой области техники, что по мере развития технического прогресса основная идея изобретения может быть реализована различными способами. Настоящее изобретение и его варианты осуществления, следовательно, не ограничиваются приведенными выше примерами, но при этом они могут варьироваться в пределах объема формулы изобретения.