Платформа маршрутизации сообщений

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

 

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

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

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

Все более увеличивающаяся популярность обмена сообщениями и мобильных форматов передачи данных, таких как SMS, MMS, VOIP, электронная почта, мгновенный обмен сообщениями, обмен видеосообщениями, передача потока «живого» видео и так далее, подвергает емкость сети все более увеличивающейся нагрузке. Увеличенный трафик воздействует на эффективность сети. Для улучшения пропускной способности многие провайдеры применяют формирование, когда скорость передачи данных, обеспечиваемая для множества пользователей, превышающих установленные пределы использования данных, ограничена.

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Раскрытие изобретения

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

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

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

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

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

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

Пакеты могут включать в себя пакеты сообщений, пакеты информации или пакеты присутствия. Если пакет представляет собой пакет сообщений и система не в состоянии определить местоположение получателя, система предпринимает попытку доставить пакет в соответствии с предварительно определенным набором правил. Пакеты доставки имеют возможность и могут включать (но не ограничиваются этим) доставку SMS, доставку электронной почты и/или доставку через другую альтернативную среду. Если пакет представляет собой пакет информации, система отправляет обратно отправителю сообщения пакет ошибки «не найдено». Если пакет сообщений представляет собой пакет присутствия, система отбрасывает пакет.

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

принимают на первом узле в пределах множества узлов пакет для назначенного получателя;

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

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

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

Предпочтительно, способ включает этап, на котором пересылают пакет получателю на основе предварительно определенных правил.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

Фиг. 1 является схематичной диаграммой, иллюстрирующей систему для маршрутизации пакетов в соответствии с одним вариантом осуществления настоящего изобретения;

Фиг. 2 является блок-схемой последовательности операций, иллюстрирующей процесс маршрутизации в соответствии с одним вариантом осуществления настоящего изобретения;

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

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

ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ

Будет понятным, что на протяжении описания термины «соединение» и «реестр», при использовании вместе с описанием архитектуры системы, относятся к логическим компонентам сервера, манипулирующим возможностью соединения конечных пользователей/устройств (соединение) и базы данных/устойчивого доступа к данным (реестра). Схожим образом, термин «местоположение» используется для обозначения «местоположения пользователя или устройства», которое должно определяться как уникальный идентификатор для «соединения», как определено выше. Это может быть, например, IP адрес, но архитектура также охватывает любую другую схему адресации. Термин «база данных» также используется в общем как относящийся к хранению данных и не подразумевает какой-либо конкретный способ хранения данных (такой как база данных SQL), или какую-либо конкретную систему манипулирования базой данных или продукт.

Со ссылкой на фиг. 1 проиллюстрирован один пример системы 100 для маршрутизации пакета 102 в соответствии с одним вариантом осуществления настоящего изобретения. Пакеты в данном конкретном примере могут включать в себя пакеты сообщений, пакеты информации и пакеты присутствия. При использовании протокола XMPP, это соответствует строкам <сообщение>, <iq> и <присутствие> соответственно.

В данном примере клиент-отправитель 101 форматирует пакет 102 и пересылает на первый выбранный сервер 104а из множества серверов (кластера) 104а, 104b, 104c в пределах первого выбранного узла 103а в пределах множества узлов 103а, 103b, 103c и 103d (сети) для доставки к назначенному получателю 108. Когда пакет 102 доставлен на первый сервер 104а в пределах выбранного узла 103а, первый сервер 104а определяет, соединен ли назначенный получатель 108 с первым сервером 104а. Если получатель соединен с сервером 104а, тогда сервер переходит к доставке пакета (местной доставке) к назначенному получателю 108.

Если получатель 108 не соединен с сервером 104а, 104b, 104c в пределах кластера, тогда первый сервер 104а переходит к проверке, содержит ли пакет 102 адрес назначения. Например, пакет 102 может задавать сервер 104c в узле 103c как адрес назначения, в этом случае сервер 104а в узле 103а осуществляет маршрутизацию пакета 102 напрямую к серверу 104c в пределах узла 103c. Специалистам в области техники будет в полной мере понятно, что пакет может быть маршрутизирован не напрямую к серверу 104c в пределах узла 103c, через узел 103b, либо через узел 103d на узел 103c, тогда первый сервер 104а в пределах узла 103c может предпринимать доставку пакета 102 до пересылки пакета 102 на сервер 104c для доставки получателю 108.

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

Как продемонстрировано, реестр 105 включает в себя множество серверов 106а, 106b, 106c (кластер серверов реестра). Когда пакет 102 доставляется на первый сервер 106а из множества серверов (кластера) 106а, 106b, 106c, сервер 106а запрашивает от одной или более баз 107а, 107b, 107c данных информацию, относящуюся к последнему известному местоположению назначенного получателя 108. Если информация по последнему местоположению назначенного получателя 108 доступна, тогда первый сервер 106а пересылает пакет на сервер 104а, 104b, 104c в пределах соответствующего узла 103а, 103b, 103c и 103d, с которым получатель 108 был последний раз соединен. В этом примере информация, полученная из баз данных, обозначила, что получатель 108 был в последний раз соединен с сервером 104а в узле 103d, в этом случае сервер 106а пересылает пакет 102 на сервер 104а в узле 103d для доставки. В ситуации, если получатель 108 с тех пор сменил местоположение, сервер 104а может затем обрабатывать пакет, как описано выше, или осуществлять дополнительную маршрутизацию. Дополнительные подробности способа маршрутизации пакетов между различными узлами и так далее описываются относительно фиг. 2 ниже.

В дополнительном варианте осуществления настоящего изобретения первый сервер 104а, при определении, что назначенный получатель 108 не соединен с первым сервером 104а, может сначала проводить поиск оставшихся серверов 104b, 104c в пределах кластера, содержащегося в узле 103а с целью определения, соединен ли назначенный получатель 108 с одним из оставшихся серверов 104b, 104c. Если назначенный получатель 108 соединен с одним из оставшихся серверов 104b, 104c, тогда сервер 104а пересылает пакет на сервер (в этом случае сервер 104b), с которым получатель 108 соединен. Сервер 104b затем доставляет пакет получателю 108.

Как упомянуто выше, серверы в пределах узлов 103а, 103b, 103c и 103d, а также реестр 105 скомпонованы в кластеры. Кластеры обычно состоят из некоторого количества серверов, имеющих по меньшей мере одно доступное между ними сетевое соединение. Таким образом, серверы могут быть географически распределены по области обслуживания узла при условии, что между серверами доступно сетевое соединение. В то время как вышеуказанное описание показало различие между реестром и узлами, специалистам в области техники будет в полной мере понятно, что различие было показано только для ясности описания, какой-либо любой кластер серверов в пределах данного узла может являться кластером типа соединения или реестра.

Со ссылкой на фиг. 2 представлена блок-схема последовательности операций, иллюстрирующая пример процесса маршрутизации, который может быть применен в системе фиг. 1, описанной выше. Здесь пакет 102 форматируется и доставляется на сервер 104а «соединение» в пределах узла 103а. Поскольку в пределах сети существует множество узлов 103а, 103b, 103c, 103d, получатель 108 может быть соединен с каким-либо одним из серверов 104а, 104b, 104c соединения в пределах кластера серверов, содержащегося в данном узле. Таким образом, сервер 104а соединения, манипулирующий пакетом, выполняет проверку 201 с целью увидеть, соединен ли локально назначенный получатель с сервером 104а, обрабатывающим пакет. Если эта проверка в результате дает «да», это означает, что получатель пакета был найден и соединен с сервером 104а, в данное время манипулирующим обработкой. Таким образом, сервер 104а переходит к локальной доставке 202 пакета 102 (то есть, в случае, если получатель 108 соединен с сервером 104).

Если результатом проверки 201 является ответ «нет», тогда сервер 104а соединения должен инициировать процедуру поиска для определения местоположения назначенного получателя 203. Согласно этой процедуре поиска сервер 104а соединения переходит к проверке 203, содержит ли пакет 102 «назначение маршрутизации». Информация маршрутизации в этом случае представляет собой уникальный идентификатор, задающий данный сервер соединения в пределах кластера 104а, 104b, 104c (это может быть, например, IP адрес данного сервера, но также могут применяться и другие схемы адресации), на который пакет должен пересылаться. Таким образом, клиент-отправитель может использовать необязательное поле «назначения маршрутизации» в пакете 102 для запроса маршрутизации к конкретному серверу соединения, где клиент либо знает, либо может проследить местоположение или вероятное местоположение узла 103а, 103b, 103c, 103d, содержащего сервер 104а, 104b, 104c соединения, с которым получатель 108 соединен.

Если пакет 102 содержит информацию маршрутизации, сервер 104а соединения, манипулирующий обработкой пакета 102, затем пересылает пакет 102 на сервер 104а, 104b, 104c соединения, идентифицированный в информации маршрутизации. Информация маршрутизации затем «сбрасывается», или удаляется, 204 для предотвращения бесконечной маршрутизации пакета 102 по одному и тому же назначению в петле, когда пакет обрабатывается посредством соответствующего сервера соединения в пределах соответствующего узла назначения.

Если назначенный получатель не соединен с сервером 104а соединения, выполняющим обработку, и если в пакете 102 нет заданного назначения маршрутизации, сервер 104а соединения пересылает (этап 205) пакет 102 на выбранный сервер 106а реестра в пределах кластера серверов 106а, 106b, 106c реестра для установления местоположения назначенного получателя 108. Сервер 104а соединения, выполняющий обработку, по своему усмотрению определяет подходящий для этого сервер 106а, 106b, 106c реестра, используя любую желаемую схему (это может быть ближайший сервер реестра, или сервер с наименьшей загрузкой, или просто случайно выбранный из известных доступных реестров, или с использованием любого другого способа).

Когда пакет 102 достигает сервера 106а реестра, сервер 106а реестра затем осуществляет поиск данных получателя в одной или более баз 107а, 107b, 107c данных (например, учетной записи пользователя получателя, и так далее). Базы 107а, 107b, 107c данных могут, как и серверы соединения и реестра, быть скомпонованы в кластеры, распределенные по сети, тем самым предоставляя данным получателя возможность быть сохраненными в более чем одной базе данных в пределах сети. В таких случаях все серверы 106а, 106b, 106c реестра конфигурируются с информацией, требуемой для определения, где хранятся данные данного пользователя и как с ними соединиться. Используя информацию конфигурации, сервер 106а реестра, обрабатывающий пакет 102, соединяется с соответствующей базой 107а, 107b, 107c данных (если не соединен ранее) и запрашивает 206 от базы данных данные профиля пользователя назначенного получателя 108.

Когда сервер 106а реестра определяет местоположение данных профиля пользователя в пределах соответствующей базы 107а, 107b, 107c данных, сервер 106а реестра затем переходит к проверке 207, известно ли самое последнее местоположение учетной записи пользователя получателя («местоположение» используется здесь, как определено выше, оно представляет собой уникальный идентификатор сервера соединения в данном узле в пределах сети). Схожим образом, «самое последнее местоположение» здесь относится к серверу 104а, 104b, 104c соединения, который совсем недавно обслуживал назначенного получателя 108. До пересылки пакета 102 посредством сервера 106а реестра на последний известный сервер 104а, 104b, 104c соединения, который последним обслуживал назначенного получателя, выполняется дополнительная проверка 208 для определения, был ли пакет уже переслан посредством сервера 106а, 106b, 106c реестра на сервер 104а, 104b, 104c соединения. Если был, тогда пакет снова пересылаться не будет.

В случае, если пакет 102 еще не был переслан посредством реестра 106а, 106b, 106c, реестр 106а, осуществляющий в настоящий момент обработку пакета, помечает пакет 102 с помощью информации, обозначающей, что пакет был переслан посредством сервера 106а реестра, осуществляющего в настоящий момент обработку пакета. Сервер 106а реестра затем пересылает 209 пакет 102 на соответствующий сервер 104а, 104b, 104c соединения. Соответствующий сервер 104а, 104b, 104c соединения затем продолжает обработку пакета, как описано выше. Отметка пакета 102, таким образом, обеспечивает то, что, когда в следующий раз пакет 102 проходит через проверку 208, не формируется никакой бесконечной петли, которая будет перебрасывать пакет между реестром и сервером соединения.

Если местоположение получателя не может быть определено посредством сервера 106а реестра, тогда делается заключение 210, что получатель 108 пакета не соединен с каким-либо любым сервером 104а, 104b, 104c соединения в настоящее время. Если можно так выразиться, назначенный получатель 108 является «автономным». Тогда протокол определяет 211, к какому классу пакет 102 принадлежит (то есть к классу сообщений, информации или присутствия). В зависимости от того, к какому типу пакет принадлежит, различается способ, каким процесс маршрутизации манипулирует пакетом.

В случае «пакета сообщений», которые считаются «наиболее важными», система будет обращаться 212 к набору правил маршрутизации, и выносит соответствующее решение о способе, каким пакет затем доставляется. Правила маршрутизации 212, руководящие способом, которым сообщения доставляются, могут включать в себя (но не ограничиваются этим) доставку SMS, доставку электронной почтой и/или доставку через другую альтернативную среду.

В случае «пакетов информации» (которые соответствуют IQ-строкам в протоколе XMPP), отправителю первоначального пакета обратно отправляется пакет 213 ошибки «не найдено» (также часто называемый как ошибка 404). Доставка пакета ошибки затем также будет следовать тому же описанному здесь алгоритму маршрутизации сообщений. Пакет ошибки не будет отправляться в случае, если первоначальный пакет уже являлся пакетом ошибки (то есть на ответы ошибки не будет отправляться никакого ответа ошибки). Еще раз, это предотвратит возникновение бесконечной петли.

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

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

• Клиент(ы) 101, 108

• Соединение(я) 104а, 104b, 104c

• Реестр(ы) 106а, 106b, 106c

• База(ы) 107а, 107b, 107c данных

Взаимосвязи соединений между этими компонентами проиллюстрированы на фиг. 3. Алгоритм маршрутизации задает следующие взаимосвязи соединений. Клиент-отправитель 101 и клиент-получатель 108 соединяются только с серверами 104а, 104b, 104c соединения. Как показано, с одним сервером 104а могут соединяться один или более клиентов 101, 108. В любое данное время может быть соединено любое количество клиентов, однако только один клиент/учетная запись пользователя может быть соединен(а) с одним сервером 104а соединения в одно время. В любое данное время может быть сделано доступным любое количество серверов 104а, 104b, 104c соединения. Любой сервер соединения может соединяться с любым сервером 106а, 106b, 106c реестра. Сервер 104а соединения может соединяться со множеством реестров одновременно, если это так требуется. Любой сервер 106а, 106b, 106c реестра может осуществлять доступ к любой базе 107а, 107b, 107c данных. Реестр может соединяться с множеством баз данных одновременно, если это так требуется. Любой сервер реестра может соединяться с любым сервером соединения (для пересылки сообщения, как описано выше).

«Соединение», «реестр» и «база данных» использованы выше в качестве логических компонентов системы, и они могут или не могут применяться на одиночном физическом сервере, или могут применяться в массиве аппаратного обеспечения. Обычно, физическую раскладку требуемой системы будут определять требования емкости.

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

«Фрагмент» используется здесь как относящийся к «разделу базы данных», который представляет способ распределения большого количества данных по нескольким отдельно установленным оконечным ЭВМ хранения данных. «Оконечная ЭВМ хранения данных» обычно используется здесь как относящаяся к конкретному серверу, осуществляющему прогон RDBMS (системы управления реляционными базами данных), однако, это не является обязательным, и здесь может быть приемлем какой-либо любой способ хранения данных.

Как показано на фиг. 4, в совместно используемой среде, серверу 106а реестра необходимо всегда определять правильное местоположение хранения данных для какого-либо любого данного действия и выполнять операцию с соответствующим фрагментом. Например, если требуемый фрагмент является фрагментом «номер 2», тогда сервер 106а реестра определяет, что фрагмент хранится внутри базы 107а данных. Сервер 106а реестра затем извлекает фрагмент из базы 107а данных и выполняет необходимое действие. Если требуемый фрагмент является фрагментом «номер 1» и операция представляет собой операцию чтения, сервер 106а реестра будет определять, что соответствующий фрагмент содержит либо база 107b данных, либо база 107c данных; однако, если требуемый фрагмент является фрагментом «номер 1», но операция представляет собой операцию (добавления или модификации данных) записи, тогда сервер 106а будет выбирать базу 107b данных (исходя из того что репликация относится к типу «главный-подчиненный»). В то время как выбор фрагментов был описан в отношении доступа к 3 отдельным базам данных, по которым распределены фрагменты, специалистам в области техники будет в полной мере понятно, что может использоваться одна база данных, содержащая множество позиций.

Как упомянуто выше, большая база данных может быть разделена на некоторое количество фрагментов (или «разделов»), для каждой записи в базе данных, при этом алгоритм фрагментации определяет, какой раздел обладает записью. Алгоритм фрагментации может реализовываться различными способами, и опять конкретный алгоритм должен быть продиктован требованиями масштабирования. Общие рекомендации для алгоритма фрагментации могут быть следующими:

• Для данных, относящихся к конкретной учетной записи пользователя в системе, первым определяется уникальный идентификатор для учетной записи пользователя («id пользователя»).

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

• Хэш-код используется в качестве основы назначения фрагмента. Если количество доступных фрагментов известно, тогда это может просто быть получено посредством простого деления и записи остатка. Например:

1. Задана система с 8 фрагментами базы данных, и

2. Хэш (id пользователя) = 84529823.

3. Номер фрагмента базы данных, обладающего записями этого id пользователя, может быть 84529823 % 8 = 7 (запись «a % b» здесь относится к выполнению деления «a/b», и затем извлечения остатка вычисления).

4. В этом случае, фрагментом базы данных будет фрагмент номер 7.

В дополнение к алгоритму фрагментации, в пределах системы требуется другой механизм для определения того, как серверы 106а, 106b, 106c реестра должны достигать данного фрагмента. Для операций чтения и записи могут конфигурироваться различные механизмы с целью обеспечения репликации баз данных в конфигурации «главный-подчиненный» (где запись может осуществляться только на один физический сервер, но для операций чтения может быть доступным множество серверов).

Этот механизм для определения местоположения фрагментов может реализовываться посредством простых таблиц конфигурации в пределах серверов 106а реестра, в которых каждый индекс фрагмента сконфигурирован с помощью адресов (IP) серверов, которые могут действовать в качестве узлов базы данных для данного фрагмента. Эти адреса могут быть помечены посредством флагов «чтение» и/или «запись», так что реестр будет знать, с чем соединяться с учетом требования базы данных в какое-либо любое данное время.

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

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

2. Система по п.1, причем система дополнительно выполнена с возможностью определения, соединен ли назначенный получатель с сервером в пределах множества серверов упомянутого первого узла, и доставки пакета на сервер, с которым назначенный получатель соединен в пределах упомянутого первого узла, до определения того, содержит ли пакет адрес назначения.

3. Система по п.1, в которой первый сервер из множества серверов выполнен с возможностью очистки информации маршрутизации в пакете по пересылке пакета к требуемому назначению.

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

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

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

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

8. Система по п.7, причем система сконфигурирована для обработки каждого пакета в соответствии с предварительно определенным набором правил для каждого класса в ответ на неспособность реестра получить профиль пользователя назначенного получателя.

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

10. Система по п.9, в которой альтернативная среда представляет собой SMS (службу коротких сообщений).

11. Система по п.8, причем система сконфигурирована для отправки сообщения об ошибке источнику пакета для пакетов, присвоенных классу пакетов информации.

12. Система по п.8, причем система сконфигурирована для отбрасывания пакетов, присвоенных классу пакетов присутствия.

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

14. Способ по п.13, дополнительно содержащий этап, на котором сбрасывают адрес назначения в пакете при пересылке пакета на адрес назначения.

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

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

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

18. Способ по п.17, в котором этап, на котором пересылают пакет, присвоенный классу пакетов сообщений, назначенному получателю через альтернативную среду, заданную в профиле пользователя.

19. Способ по п.18, в котором альтернативная среда представляет собой службу (SMS) коротких сообщений.

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

21. Способ по п.18, дополнительно включающий в себя этап, на котором отбрасывают пакеты, присвоенные к классу пакетов присутствия.



 

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

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

Изобретение относится к беспроводной связи. .

Изобретение относится к способу оценки остаточной пропускной способности для расчета пропускной способности в беспроводных ячеистых сетях. .

Изобретение относится к сетям связи стандарта IEEE 802.16 с помощью ретрансляций через CID-инкапсуляцию. .
Изобретение относится к технике связи. .

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

Изобретение относится к способу замены устройства в сети, содержащей множество устройств. .

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

Изобретение относится к области построения коммуникационных сетей с резервированием

Изобретение относится к области коммуникационных сетей с резервированием, предназначенных для систем автоматизации энергообъектов в соответствии со стандартом IEC 61850

Изобретение относится к области компьютерных систем, а именно к описанию клиент-серверного взаимодействия, анализа протоколов и автоматизированного анализа сетевого трафика с целью идентификации сетевых протоколов

Изобретение относится к области электронной передачи и обработки информации

Изобретение относится к технологиям передачи пакетных данных в беспроводной сети
Наверх