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

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

Info

Publication number
RU2483457C2
RU2483457C2 RU2011104073/08A RU2011104073A RU2483457C2 RU 2483457 C2 RU2483457 C2 RU 2483457C2 RU 2011104073/08 A RU2011104073/08 A RU 2011104073/08A RU 2011104073 A RU2011104073 A RU 2011104073A RU 2483457 C2 RU2483457 C2 RU 2483457C2
Authority
RU
Russia
Prior art keywords
packet
server
recipient
registry
designated recipient
Prior art date
Application number
RU2011104073/08A
Other languages
English (en)
Other versions
RU2011104073A (ru
Inventor
Джон Энтони АНДЕРВУД
Кристофер Эдвард КИЗ
Маркку КЕРО
Райнер ЛЕЙНОНЕН
Алвин ДЕЛАГОН
Original Assignee
Зрд Брэнд Пте. Лтд
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Зрд Брэнд Пте. Лтд filed Critical Зрд Брэнд Пте. Лтд
Publication of RU2011104073A publication Critical patent/RU2011104073A/ru
Application granted granted Critical
Publication of RU2483457C2 publication Critical patent/RU2483457C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/222Monitoring or handling of messages using geographical location information, e.g. messages transmitted or received in proximity of a certain spot or area
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/043Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

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

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящая заявка на изобретение относится к системам и способам для маршрутизации информации. В частности, хотя не исключительно, настоящее изобретение относится к маршрутизации сообщений и данных в мобильной сети связи.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Все более увеличивающаяся популярность обмена сообщениями и мобильных форматов передачи данных, таких как 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) серверов, которые могут действовать в качестве узлов базы данных для данного фрагмента. Эти адреса могут быть помечены посредством флагов «чтение» и/или «запись», так что реестр будет знать, с чем соединяться с учетом требования базы данных в какое-либо любое данное время.
Следует понимать, что приведенные выше варианты осуществления были обеспечены только в виде пояснения примером данного изобретения и что дополнительные их модификации и улучшения, как будет очевидно для специалистов в области техники, подразумеваются как попадающие в пределы широкого объема и границ настоящего изобретения, описанного в настоящем документе.

Claims (21)

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, дополнительно включающий в себя этап, на котором отбрасывают пакеты, присвоенные к классу пакетов присутствия.
RU2011104073/08A 2008-08-13 2009-07-29 Платформа маршрутизации сообщений RU2483457C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SG200805997-4A SG159399A1 (en) 2008-08-13 2008-08-13 Message routing platform
SG200805997-4 2008-08-13
PCT/SG2009/000266 WO2010019105A1 (en) 2008-08-13 2009-07-29 Message routing platform

Publications (2)

Publication Number Publication Date
RU2011104073A RU2011104073A (ru) 2012-09-20
RU2483457C2 true RU2483457C2 (ru) 2013-05-27

Family

ID=41669090

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2011104073/08A RU2483457C2 (ru) 2008-08-13 2009-07-29 Платформа маршрутизации сообщений

Country Status (18)

Country Link
US (1) US8798001B2 (ru)
EP (1) EP2316205B1 (ru)
JP (1) JP5441041B2 (ru)
KR (1) KR101384794B1 (ru)
CN (1) CN102124702B (ru)
AU (1) AU2009282526B2 (ru)
CA (1) CA2734048C (ru)
CO (1) CO6351836A2 (ru)
ES (1) ES2567272T3 (ru)
HK (1) HK1157966A1 (ru)
MX (1) MX2011001608A (ru)
MY (1) MY161672A (ru)
RU (1) RU2483457C2 (ru)
SG (1) SG159399A1 (ru)
TW (1) TWI466502B (ru)
UA (1) UA100582C2 (ru)
WO (1) WO2010019105A1 (ru)
ZA (1) ZA201100748B (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2679340C1 (ru) * 2013-12-20 2019-02-07 Ровио Энтертейнмент Лтд Маршрутизации сообщений без сохранения состояния
US10523619B2 (en) 2013-12-20 2019-12-31 Rovio Entertainment Ltd. Stateless message routing

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110252083A1 (en) * 2010-04-13 2011-10-13 Rebelvox, Llc Apparatus and method for transmitting media using either network efficient protocol or a loss tolerant transmission protocol
US8924472B1 (en) * 2011-08-20 2014-12-30 Datastax, Inc. Embedding application services in a distributed datastore
US10354310B2 (en) * 2013-05-10 2019-07-16 Dell Products L.P. Mobile application enabling product discovery and obtaining feedback from network
US9560315B1 (en) * 2015-12-07 2017-01-31 Dell Software, Inc. Reducing videoconferencing bandwidth usage

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006026435A2 (en) * 2004-08-30 2006-03-09 Tatara Systems, Inc. Mobile services control platform providing a message forwarding service
US20060165015A1 (en) * 1999-10-28 2006-07-27 Lightwaves Systems, Inc. Method for routing data packets using an IP address based on geo position
US20060223530A1 (en) * 2005-03-29 2006-10-05 Research In Motion Limited System and method for personal identification number messaging
US20060291388A1 (en) * 2001-05-24 2006-12-28 F5 Networks, Inc. Method and system for scaling network traffic managers
RU2308812C2 (ru) * 2001-12-28 2007-10-20 Моторола, Инк. Связь по выбранному участку
WO2008065531A2 (en) * 2006-11-27 2008-06-05 Skype Limited Communication system

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006272A (en) * 1998-02-23 1999-12-21 Lucent Technologies Inc. Method for network address translation
US6452915B1 (en) * 1998-07-10 2002-09-17 Malibu Networks, Inc. IP-flow classification in a wireless point to multi-point (PTMP) transmission system
JP3664388B2 (ja) * 2001-11-22 2005-06-22 エヌイーシーシステムテクノロジー株式会社 双方向通信システムおよび方法
US7535913B2 (en) * 2002-03-06 2009-05-19 Nvidia Corporation Gigabit ethernet adapter supporting the iSCSI and IPSEC protocols
US7050416B2 (en) * 2002-05-14 2006-05-23 Thomson Licensing Technique for IP communication among wireless devices
JP2003333178A (ja) * 2002-05-15 2003-11-21 Takeshi Aoki 一般電話機によるインターネット電話システム
WO2004064337A1 (de) * 2003-01-09 2004-07-29 Siemens Aktiengesellschaft Verfahren und mobilfunktelekommunikationsnetz zur übertragung von paketdaten
KR20040070557A (ko) * 2003-02-04 2004-08-11 주식회사 케이티프리텔 이동통신 시스템에서 메시지 전송 방법 및 장치
JP2005080176A (ja) * 2003-09-03 2005-03-24 Uniden Corp ゲートウェイ装置及びその制御方法
CN100454882C (zh) * 2003-12-19 2009-01-21 华为技术有限公司 多isp局域网的出口选择方法及装置
US7426389B2 (en) * 2004-10-15 2008-09-16 Utstarcom, Inc. Method and apparatus for implementing direct routing
US7496678B2 (en) * 2005-05-11 2009-02-24 Netapp, Inc. Method and system for unified caching of media content
US7567553B2 (en) * 2005-06-10 2009-07-28 Swift Creek Systems, Llc Method, system, and data structure for providing a general request/response messaging protocol using a presence protocol
KR100727069B1 (ko) * 2005-10-27 2007-06-12 주식회사 케이티프리텔 Sip 기반의 무선 패킷 교환망 시스템에서의 타망 연동방법 및 그 시스템
US7673010B2 (en) * 2006-01-27 2010-03-02 Broadcom Corporation Multi user client terminals operable to support network communications
US7996467B2 (en) * 2006-08-29 2011-08-09 Oracle International Corporation Techniques for applying policies for real time collaboration
US8782274B2 (en) * 2007-10-19 2014-07-15 Voxer Ip Llc Method and system for progressively transmitting a voice message from sender to recipients across a distributed services communication network
US8594679B2 (en) * 2008-03-07 2013-11-26 Tekelec Global, Inc. Methods, systems, and computer readable media for routing a message service message through a communications network
US8149840B2 (en) * 2008-06-02 2012-04-03 Huawei Technologies Co., Ltd. Method, system and processor for processing network address translation service

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060165015A1 (en) * 1999-10-28 2006-07-27 Lightwaves Systems, Inc. Method for routing data packets using an IP address based on geo position
US20060291388A1 (en) * 2001-05-24 2006-12-28 F5 Networks, Inc. Method and system for scaling network traffic managers
RU2308812C2 (ru) * 2001-12-28 2007-10-20 Моторола, Инк. Связь по выбранному участку
WO2006026435A2 (en) * 2004-08-30 2006-03-09 Tatara Systems, Inc. Mobile services control platform providing a message forwarding service
US20060223530A1 (en) * 2005-03-29 2006-10-05 Research In Motion Limited System and method for personal identification number messaging
WO2008065531A2 (en) * 2006-11-27 2008-06-05 Skype Limited Communication system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2679340C1 (ru) * 2013-12-20 2019-02-07 Ровио Энтертейнмент Лтд Маршрутизации сообщений без сохранения состояния
US10523619B2 (en) 2013-12-20 2019-12-31 Rovio Entertainment Ltd. Stateless message routing

Also Published As

Publication number Publication date
CN102124702B (zh) 2014-04-09
CN102124702A (zh) 2011-07-13
CA2734048A1 (en) 2010-02-18
WO2010019105A1 (en) 2010-02-18
MY161672A (en) 2017-05-15
US20120002601A1 (en) 2012-01-05
CO6351836A2 (es) 2011-12-20
JP2011530953A (ja) 2011-12-22
AU2009282526B2 (en) 2014-08-14
SG159399A1 (en) 2010-03-30
RU2011104073A (ru) 2012-09-20
ES2567272T3 (es) 2016-04-21
KR20110044273A (ko) 2011-04-28
UA100582C2 (ru) 2013-01-10
HK1157966A1 (en) 2012-07-06
EP2316205A1 (en) 2011-05-04
TWI466502B (zh) 2014-12-21
JP5441041B2 (ja) 2014-03-12
MX2011001608A (es) 2011-04-07
KR101384794B1 (ko) 2014-04-24
US8798001B2 (en) 2014-08-05
CA2734048C (en) 2015-10-13
EP2316205B1 (en) 2016-01-06
TW201025943A (en) 2010-07-01
AU2009282526A1 (en) 2010-02-18
EP2316205A4 (en) 2013-09-11
ZA201100748B (en) 2012-05-01

Similar Documents

Publication Publication Date Title
US9998354B2 (en) Server selection for content distribution
KR101337039B1 (ko) 통신 네트워크 내의 패킷을 라우팅하는 방법 및 통신 네트워크 내의 패킷을 라우팅하기 위한 네트워크 노드
KR101072966B1 (ko) 파일 데이터 분배 방법, 디바이스, 및 시스템
EP2214357B1 (en) Method and system for facilitating forwarding a packet in a content-centric network
US7558854B2 (en) Access relaying apparatus
US20080235321A1 (en) Distributed contents storing system, copied data acquiring method, node device, and program processed in node
EP2993853B1 (en) Method for routing and forwarding, and network controller
KR20140067881A (ko) 컨텐츠 중심 네트워크에서 컨텐츠 소유자 및 노드의 패킷 전송 방법
US20040044790A1 (en) Heuristics-based peer to peer message routing
RU2483457C2 (ru) Платформа маршрутизации сообщений
KR20130088774A (ko) 분할 콘텐트 전달 시스템 및 방법
WO2011150830A1 (zh) 获取内容的方法、节点及内容网络
US20080281982A1 (en) Contents distribution system, node apparatus and information processing method thereof, as well as recording medium on which program thereof is recorded
WO2013130359A1 (en) A method for collaborative caching for content-oriented networks
CN110166220B (zh) 一种根据分区键的散列值进行切分的分片方法
WO2021253889A1 (zh) 负载均衡方法、装置、代理设备、缓存设备及服务节点
US20140052817A1 (en) Method, apparatus, and network system for acquiring content
US8681760B2 (en) Network positioning system and terminal positioning device
US20200341968A1 (en) Differential Update of Local Cache from Central Database
CN109495525B (zh) 网络组件、解析内容标识的方法和计算机可读存储介质
US8478823B2 (en) Selective data forwarding storage
CN114745440B (zh) 一种ccn缓存替换方法及装置
CN115567591A (zh) 内容资源分发方法、内容分发网络、集群及介质
KR20140115155A (ko) 컨텐츠 중심 네트워크에서 블룸 필터를 이용하여 라우팅을 수행하는 노드 및 그 방법

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20170730