RU2344562C2 - Способ выбора сервера из набора серверов - Google Patents

Способ выбора сервера из набора серверов Download PDF

Info

Publication number
RU2344562C2
RU2344562C2 RU2007103174/09A RU2007103174A RU2344562C2 RU 2344562 C2 RU2344562 C2 RU 2344562C2 RU 2007103174/09 A RU2007103174/09 A RU 2007103174/09A RU 2007103174 A RU2007103174 A RU 2007103174A RU 2344562 C2 RU2344562 C2 RU 2344562C2
Authority
RU
Russia
Prior art keywords
server
state vector
state
servers
value
Prior art date
Application number
RU2007103174/09A
Other languages
English (en)
Other versions
RU2007103174A (ru
Inventor
Марь н БОЗИНОВСКИ (DK)
Марьян БОЗИНОВСКИ
Манфред РАЙХ (DE)
Манфред РАЙХ
Роберт ЗАЙДЛЬ (DE)
Роберт ЗАЙДЛЬ
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 Нокиа Сименс Нетворкс Гмбх Унд Ко. Кг
Priority to RU2007103174/09A priority Critical patent/RU2344562C2/ru
Publication of RU2007103174A publication Critical patent/RU2007103174A/ru
Application granted granted Critical
Publication of RU2344562C2 publication Critical patent/RU2344562C2/ru

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

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

Description

Изобретение относится к способу выбора сервера из набора серверов с целью запроса одной или более услуг, например, связанных, по меньшей мере, с одним основанным на сеансе Интернет-приложением, причем каждый из серверов из набора серверов имеет возможность поддерживать упомянутые услуги.
В публикации R.Stewart et al.: “Aggregate Server Access Protocol”, Internet Draft, [Online] 9 June 2004 (2004-06-09), pages 1-43, XP002308317 IETF, доступной из Интернет: URL: http://www.watersprings.org/pub/id/draft-ietf-rserpool-asap-09.txt> [получена 2004-11-30], описано, что Протокол агрегатного доступа к серверам (ASAP) во взаимосвязи с Протоколом разрешения имени конечного пункта (ENRP) обеспечивает механизм передачи данных высокой доступности в IP-сети. Протокол ASAP использует модель адресации на основе имени, которая выделяет логический конечный пункт передач из его логического(их) адреса(ов), тем самым эффективно исключая связывание между конечным пунктом передачи и его физическим(и) IP-адресом(ами), что обычно образует один пункт сбоя.
В публикации Hofmann R. et al.,: “Distributed Performance Monitoring: Methods, Tools, and Applications”, IEEE Transactions on Parallel and Distributed Systems, IEEE Inc., New York, US, vol. 5, no.6, 1 June 1994 (1994-06-01), pages 585-598, XP000450482, ISSN: 1045-9219 описывается способ анализа функционального поведения и характеристик программ в распределенных системах. В документе описываются гибридный мониторинг и метод, который объединяет преимущества мониторинга на основе программного обеспечения и мониторинга аппаратными средствами. Статья содержит описание аппаратного блока мониторинга и пакета программ, чтобы сделать эти принципы доступными для программистов и помочь им в отладке и настройке их кодов. Краткий обзор связанных с этим систем мониторинга выявляет характерные признаки реализации. В качестве применения системы мониторинга и оценивания описан анализ программы параллельной трассировки лучей, исполняемой на мультипроцессоре Suprenum.
Документ D3 (US 2003/0101258 A1) описывает способ мониторинга серверов-реплик в сетевой компьютерной системе, в которой каждый сервер в системе имеет таблицу векторов партнеров-реплик, включающую в себя информацию состояний для других серверов в системе. Таблица векторов серверов-реплик включает в себя поля данных для хранения номера последовательности обновления (USN) и информацию временной метки, которая идентифицирует время последнего обновления и/или время последней успешной попытки реплицирования для каждого сервера-реплики в системе. После успешного реплицирования сервер обновляет записи в векторе партнеров-реплик для отображения обновленного USN и информации временной метки. Способ мониторинга оценивает записи USN и временной метки в таблице векторов партнеров-реплик для определения того, являются ли какие-либо серверы в системе латентными. Если способ мониторинга обнаруживает, что сервер в системе является латентным, то генерируется предупредительная сигнализация, посредством чего пользователи и/или сетевой администратор информируются о проблеме.
Управление сеансом приобретает все большую важность по мере быстрого роста числа и популярности Интернет-услуг, основанных на уведомлении о сеансе. Основанные на сеансе услуги включают в себя мультимедийные конференции, вызовы Интернет-телефонии и подобные приложения, состоящие из одного или более типов мультимедийных данных, таких как аудио, видео и т.д. Примеры использования включают в себя услуги управления сеансом как часть IP мультимедийной подсистемы (IMS) в мобильных сетях 3-го поколения. В подсистеме IMS серверы функции управления сеансом вызова (CSCF) выполняют управление сеансом на основе Протокола инициирования сеанса (SIP). Протоколы управления сеансом, такие как SIP, являются транзакционными протоколами. В принципе транзакция состоит в одном запросе и ответе на этот запрос.
Устойчивость к отказам, например, в системах управления сеансом обеспечивается за счет введения избыточности. А именно серверы управления сеансами объединяются в наборы серверов. Набор серверов состоит из N серверов, обеспечивающих одну и ту же функциональность. Такая устойчивая к отказам реплицированная система управления сеансами показана на фиг. 1.
Пунктирные линии 1 обозначают на фиг. 1 клиентский запрос, посланный на центральный из этих серверов, в предположении, что этот сервер является доступным в текущий момент времени. Доступность, во-первых, предполагает, что сервер функционирует, то есть способен обеспечить запрашиваемые услуги. Во-вторых, сервер должен быть доступен или достижим посредством Интернет-соединения между сервером и его клиентом(ами).
Пунктирные линии 2 обозначают на фиг. 1 распространение обновления состояния от центрального сервера к двум серверам в левом и правом положениях. Пересекающиеся сплошные линии 3 иллюстрируют состояние отказа центрального сервера. Кроме того, клиенты будут определять, что центральный сервер не отвечает на запросы, и будут повторять свои запросы путем направления их на левый и правый серверы. Это показано сплошными линиями 4, иллюстрирующими отказоустойчивые резервированные передачи на другие работоспособные серверы.
Управление сеансом является критичным к времени приложением. Эффективность управления сеансом количественно определяется посредством времени управления транзакцией. Время управления транзакцией является средним временем между моментом запроса и моментом приема окончательного ответа пользователем (включая возможные многие отказоустойчивые резервированные передачи к различным серверам). Проблема, которая существует в системах управления сеансом, состоит в том, каким образом повысить эффективность, то есть, как снизить время управления сеансом. Стратегии выбора сервера (SSP) играют главную роль в минимизации времени управления транзакцией.
Существующие статические стратегии выбора серверов используют предварительно определенные схемы для выбора серверов. Примерами статических SSP являются следующие:
- Алгоритм кольцевого списка представляет собой циклическую стратегию, при которой серверы выбираются в последовательном порядке до тех пор, пока первоначально выбранный сервер не будет выбран снова.
- Взвешенный алгоритм кольцевого списка представляет собой простое расширение алгоритма кольцевого списка. Он присваивает некоторый весовой коэффициент каждому серверу. Весовой коэффициент указывает на возможности обработки для конкретного сервера. Эта стратегия SSP может также быть динамической, если она сможет оценить индивидуальные возможности серверов и их нагрузки, по меньшей мере, на периодической основе.
Неосведомленность о состояниях динамической системы приводит к низкой сложности, однако ценой снижения эффективности и доступности услуг. Адаптивные (динамические) стратегии SSP принимают решения на основе изменений в состоянии системы и динамической оценки наилучшего сервера. Примерами динамических стратегий SSP являются следующие:
- Интеллектуальный алгоритм кольцевого списка (SRR).
В этой стратегии SSP новый запрос посылается на сервер путем применения кольцевого списка для текущего поднабора серверов, которые были известны как активные последними. Если ни для одного сервера не получено уведомление, что он активен, то кольцевой список применяется ко всему набору серверов. Этот алгоритм использует двоичную информацию о состоянии активности сервера, то есть работает ли сервер или он неисправен.
- Интеллектуальный алгоритм кольцевого списка на сеанс (SRR-S).
Это вариант алгоритмы SRR, который применяется только для выбора сервера для новых сеансов и для запросов в сеансе, которые должны использовать отказоустойчивые резервированные передачи ввиду отсутствия окончательного ответа. Как только сервер выбран, все следующие запросы в течение сеанса посылаются на тот же самый сервер до тех пор, пока сеанс не завершится или будет обнаружен отказ для запроса.
- Последняя использованная SSP (см. R.R. Stewart, Q. Xie: “Aggregate Server Access Protocol (ASAP), <draft-ietf-rserpool-asap-08.txt>, October 21, 2003, от рабочей группы IETF (Internet Engineering Task Force) “Relative Server Pooling”). В этой стратегии SSP нагрузка каждого сервера контролируется центральным контролирующим объектом или самим клиентом. На основе контроля нагрузок серверов каждому серверу присваивается так называемое значение стратегии, которое пропорционально нагрузке сервера. Согласно стратегии последней использованной SSP сервер с самым низким значением стратегии будет выбран в качестве приемника текущего сообщения. Важно отметить, что эта стратегия SSP означает, что тот же самый сервер выбирается всегда до тех пор, пока значения стратегии серверов не будут обновлены и изменены.
- Последняя использованная SSP с ухудшением [Stewart & Xie] представляет тот же самый алгоритм, что и алгоритм последней использованной SSP, с одним исключением. В частности, каждый раз, когда из набора серверов выбирается сервер с самым низким значением стратегии, его значение стратегии получает приращение. Таким образом, этот сервер может уже не иметь самого низкого значения стратегии в наборе серверов. Это сдвигает алгоритм последней использованной с ухудшением SSP с течением времени к SSP кольцевого списка. Каждое обновление значений стратегии серверов сдвигает SSP к последней использованной SSP с ухудшением.
Эффективность динамической SSP зависит от метрики, которая используется для оценки наилучшего сервера. Исследования SSP главным образом фокусировались на системах реплицированных Web-серверов. В таких системах типовые метрики основаны на близости серверов, включая географическое расстояние, число участков ретрансляции до каждого сервера, время двустороннего распространения (RTT) и времена отклика НТТР (см. Robert L. Carter, Mark E. Crovella, “Dynamic Server Selection using Bandwidth Probing in Wide Area Networks”, Proceedings of Infocom'97, the Sixteenth Annual Joint Conference of the Computer and Communication Societies, April 1997; Mark E. Crovella, Robert L. Carter, “Dynamic server selection in the Internet”, Proceedings of the third IEEE Workshop on the Architecture and Implementation of High Performance Communication Subsystems (HPCS'95), August 1995; M. Sayal, Y. Breitbart, P. Scheuermann, R. Vingralek, “Selection Algorithms for Replicated Web Servers”, Workshop on Internet Server Performance, Madison, Wisconsin, 1998; K. Obraczka, F. Silvia, “Network Latency Metrics for Server Proximity”, Proceedings of the IEEE Globecom, November 2000.
В то время как SSP в Web-системах нацелены на обеспечение высокой пропускной способности и малой задержки услуги, протоколы управления сеансами, такие как SIP, работают с сообщениями малого размера (500 байтов в среднем). Таким образом, пропускная способность может оказаться не настолько существенной метрикой, как в Web-системах. Насколько это известно авторам изобретения каких-либо масштабных исследований SSP в связи с системами управления сеансами не проводилось.
В свете изложенного целью изобретения является создание способа выбора сервера из набора серверов, усовершенствованного по сравнению с SSP, известными из предшествующего уровня техники, что касается обеспечиваемой им возможности снижения времени управления транзакциями, а также клиентского устройства для реализации такого усовершенствованного способа.
Эта задача решается способом согласно пункту 1 формулы изобретения и клиентским устройством согласно пункту 12 формулы изобретения.
Одна из существенных идей, лежащих в основе изобретения, заключается в том, что запросы сеанса должны предпочтительным образом передаваться серверу, который обеспечивает наивысшую мгновенную доступность, т.е. наивысшую доступность в момент времени передачи запроса. При этом среднее число серверов, для которых выполняются попытки передачи до достижения успеха, может быть минимизировано, а также может быть достигнуто сокращение времени управления транзакцией.
Изобретение основано на максимизации мгновенной вероятности успешной транзакции с n-й повторной передачей запроса, при условии, что (n-1) попыток были безуспешными. Следовательно, изобретение может определяться как SSP максимальной доступности (МА).
Согласно заявленному алгоритму МА клиент или каждый клиент поддерживает вектор состояний, обозначенный как р. Размер вектора состояний равен N (т.е. равен числу серверов в наборе):
p=[p1, p2,…, pn]
Определенный элемент в векторе состояний представляет момент последнего известного состояния для конкретного сервера. Если последнее состояние сервера соответствовало включенному (активному), то соответствующее значение временной отметки сохраняется в векторе состояний. Если последнее состояние сервера соответствовало выключенному (неактивному), то соответствующее значение временной отметки сохраняется в векторе состояний с отрицательным знаком. Базовый алгоритм выбирает сервер, который имеет максимальное значение временной отметки в векторе состояний. В соответствии с модифицированным вариантом выполнения изобретения выбирается сервер, имеющий значение временной отметки в пределах некоторого диапазона от максимального значения временной отметки.
Для обновления вектора состояний для клиента на клиенте должен быть реализован один из следующих вариантов или их комбинация:
1) Если переданная транзакция, посланная на конкретный сервер, успешно завершена или была безуспешной.
2) Если периодическое контрольное сообщение, посланное на сервер, успешно завешено или было безуспешным.
Механизм периодически посылаемого контрольного сообщения обеспечивает периодический или любым иным образом регулярно повторяемый опрос, чтобы проактивным образом (с упреждением) контролировать состояние заданного сервера. Опрос может основываться, например, на механизме эхо-запроса и эхо-ответа по протоколу управляющих сообщений в сети Интернет (ICMP), хорошо известный как эхо-тестирование или тестирование по методу «запрос-ответ», или на сообщениях, предназначенных для этой цели, например, Heartbeat-Message и Heartbeat-Ack-Message согласно публикации R.Stewart, et al.,: Stream Control Transmission Protocol, RFC 2960, October 2000, IETF Working Group “Signaling Transport”, или на сообщениях Keep-Alive-message или Keep-Alive-Ack-message согласно протоколу ASAP [Stewart & Xie].
Транзакция (или периодическое контрольное сообщение) является безуспешной, если клиент не принял ответа на запрос (или на запрос в периодическом контрольном сообщении) в течение интервала времени, определяемого таймаутом. Всякий раз, когда получают новый момент состояния или момент времени ti, связанный с сервером Si (когда транзакция или периодическое контрольное сообщение, посланные на конкретный сервер, успешно завершены или оказались безуспешными), элемент, связанный с сервером Si в векторе рi, обновляется следующим образом:
Figure 00000001
3) Путем контактирования с третьей стороной, например, специальным сервером или другим клиентом, который поддерживает и обновляет собственный вектор состояний для данного набора серверов. В процессе информационного обмена с третьей стороной, например, с использованием специализированного протокола клиент получает вектор текущих или обновленных состояний третьей стороны. С использованием данных состояний, полученных от третьей стороны, клиент обновляет свой локальный вектор состояний. Клиент не обновляет запись в своем локальном векторе состояний, если такая запись является более новой (более обновленной), чем соответствующая запись в данных состояний, полученных от третьей стороны. Тактовые сигналы у клиента и третьей стороны, используемые для измерения временных отметок, должны быть синхронизированы, например, путем использования прокола сетевого времени (NTP) для обозначения одного и того же момента времени одной и той же временной отметкой (синхронизация может быть также реализована путем коррекции временной отметки, полученной от третьей стороны, например, в предположении постоянного временного сдвига или дрейфа по отношению к третьей стороне, что требует использования соответствующего алгоритма).
Стратегия MA SSP основывается на предположении, что сервер, для которого последнее известное время является наиболее близким к текущему времени, наиболее вероятно должен быть активным в текущий момент времени. Например, это предположение удовлетворяется, если интервалы включения и выключения являются случайными переменными величинами, которые имеют экспоненциальные функции плотности вероятности.
Стратегия MA SSP завершает транзакцию сеанса с сервером, который имеет наивысшую мгновенную вероятность успешной транзакции, тем самым минимизируя среднее число попыток обращения к серверам до достижения успеха. Это сокращает время управления транзакцией.
В рамках другого разработанного варианта осуществления изобретения можно дополнительно сократить время управления транзакцией. Это МА-расширение основано на минимизации времени отклика приложения для выбранного в текущий момент сервера. Время отклика приложения представляет собой временную длительность между моментом посылки запроса к конкретному серверу и моментом приема окончательного ответа на клиенте. С этой целью клиент поддерживает дополнительные данные состояния, так называемый вектор задержек, обозначенный как d. Размер вектора задержек также равен N:
d=[d1, d2,…, dN]
Некоторый элемент в векторе задержек представляет время отклика приложения, которое транзакция испытывает в данном сервере. Если транзакция безуспешна, то время отклика приложения для данного сервера рассматривается как бесконечное.
Заметим, что два вектора р и d эквивалентны и могут быть представлены одним вектором s состояний, элементы которого состоят из данных временных отметок и задержек:
s=[(p1, d1), (p2, d2),…, (pn, dN)]
Поскольку МА-расширение вводит дополнительные данные состояния, помимо временной отметки доступности может применяться другой критерий решения о выборе сервера на основе двух векторов.
Может быть выведено несколько возможных критериев. Два предпочтительных варианта осуществления изобретения, использующих конкретные критерии, представлены ниже:
1) Критерий с предварительно определенным порогом для элементов вектора задержек
Этот критерий определяет пороговое значение задержки для элементов вектора задержек. Пороговое значение задержки представляет максимально допустимое время отклика приложения. Правило выбора сервера является следующим:
- Идентифицировать поднабор серверов, для которых элементы вектора задержек ниже порогового значения задержки;
- Если такой поднабор существует, то применять базовый МА-алгоритм по данному поднабору, то есть выбирать сервер с наибольшим элементом вектора состояний,
- Если такой поднабор не существует, то применять базовый МА-алгоритм по полному набору серверов.
2) Критерий с предварительно определенным диапазоном временных отметок
Этот критерий определяет диапазон временных отметок для элементов вектора состояний. Диапазон временных отметок представляет собой длительность интервала времени, верхняя граница которого равна максимальному значению элемента вектора состояний (если он существует). Идея заключается в том, чтобы выбирать только из тех серверов, которые были доступны в некоторый интервал времени, отсчитанный в обратном направлении от максимальной временной отметки. Правило выбора сервера может быть следующим:
- Идентифицировать поднабор серверов, для которых элементы вектора состояний положительны и попадают в набор, определенный диапазоном временных отметок;
- Если такой поднабор существует, то выбирать сервер с наименьшим элементом вектора задержек,
- Если такой поднабор не существует, то применять базовый МА-алгоритм по полному набору серверов.
Преимущества изобретения заключаются в следующем:
- Значительное повышение эффективности в противоположность классическим стратегиям SSP таким, как алгоритм кольцевого списка.
- МА представляет эффективную стратегию выбора сервера.
- МА характеризуется невысокой сложностью реализации. Клиенту необходимо только поддерживать вектор состояний с количеством элементов, равным числу серверов в наборе серверов.
- МА SSP не требует высокой вычислительной мощности.
- Алгоритм МА может быть реализован как динамический и как адаптивный алгоритм, который имеет возможность естественным образом и с высоким быстродействием обнаруживать самый быстродействующий сервер в наборе, даже если нагрузки трафика относительно велики.
Дальнейшие аспекты и преимущества изобретения вытекают из зависимых пунктов формулы изобретения и нижеследующего описания различных вариантов осуществления изобретения со ссылками на чертежи, на которых представлено следующее:
Фиг. 1 - схематичная иллюстрация отказоустойчивой реплицированной системы управления сеансом (описана выше);
Фиг. 2 - схематичное представление примера процесса выбора сервера согласно варианту осуществления изобретения;
Фиг. 3 - упрощенная блок-схема, показывающая функциональные блоки клиентского устройства согласно варианту осуществления настоящего изобретения.
На фиг. 2 схематично представлен пример процесса выбора сервера согласно варианту осуществления изобретения. Клиент принимает решение относительно того, какой сервер должен быть выбран. В качестве примера набор серверов состоит из 4 серверов от S1 до S4. В момент принятия решения о выборе вектор состояний содержит элементы для каждого из серверов от S1 до S4, а именно значения временных отметок, обозначенных как t1, t2, t3 и t4, представляющих моменты, когда серверы от S1 до S4 были доступны в последний раз. В памяти клиента значения временных отметок от t1 до t4 сохранены как числа, представленные битовыми последовательностями. В примере, показанном на фиг. 2, сервер S2 предполагается имеющим максимальную (положительную) временную отметку, а сервер S4 - минимальную (отрицательную) временную отметку.
Сохраненный вектор состояний просматривается на клиенте. В соответствии с правилом выбора в варианте осуществления, реализованном на клиенте, максимальное значение временной отметки в векторе состояний определяется, и выбирается соответствующий сервер. Таким образом, сервер S2 выбирается для обслуживания текущей транзакции. Отметим, что для транзакции выполняется повторная попытка с другим сервером, выбранным согласно тому же правилу, если сервер S2 не сможет выполнить обработку транзакции. Затем следующая попытка может быть направлена на сервер S3, поскольку сервер S3 имеет второе по величине (положительное) значение временной отметки после сервера S2.
В качестве примера соответствующего изобретению способа выбора сервера с использованием вектора состояний с временной отметкой доступности во взаимосвязи со значением задержки на каждый элемент рассмотрим вновь четыре сервера от S1 до S4 в наборе серверов. В заданный момент времени пусть значения временной отметки, включающие в себя информацию доступности (знак '-' обозначает случай неактивного сервера), и значения задержки будут равны p=[-8,3 c, 11,2 c, 14,1 c 13,5 c] и d=[∞,08 с, 0,55 с, 0,15 с], соответственно, для серверов S1-S4 и пусть пороговое значение задержки установлено на 0,2 с.
В соответствии с критерием, охарактеризованным выше, сначала должны быть идентифицированы серверы, у которых элементы вектора задержек ниже порогового значения задержки. Это серверы S2 и S4. Далее, поскольку существует поднабор серверов со значениями задержки ниже порогового значения, то должен применяться базовый алгоритм МА, т.е. должен выбираться сервер с наибольшим элементом вектора состояний. Таким образом, поскольку сервер S4 имеет наибольший элемент вектора состояний из набора, удовлетворяющего условию задержки, то сервер S4 выбирается для обслуживания текущей транзакции.
В качестве примера соответствующего изобретению способа выбора сервера с использованием предварительно определенного значения диапазона временных отметок рассмотрим вновь четыре сервера от S1 до S4. Пусть значения временной отметки, включающие в себя информацию доступности и значения задержки для серверов от S1 до S4, будут равны p=[-8,3 c, 11,2 c, 14,1 c, 13,5 c] и d=[∞,08 с, 0,55 с, 0,15 с] и пусть диапазон временных отметок установлен на 3 с.
В соответствии с критерием, охарактеризованным выше, сначала должен быть идентифицирован поднабор серверов, у которых элементы вектора состояний положительны и попадают в интервал, определенный диапазоном временных отметок. Поднабор включает в себя серверы S2, S3 и S4. Далее, поскольку существует поднабор серверов (не требуется возврат к базовому алгоритму МА), то должен выбираться сервер с наименьшим элементом вектора задержек. Таким образом, поскольку сервер S2 имеет наименьший элемент вектора задержек, то сервер S2 выбирается для обслуживания текущей транзакции.
На фиг. 3 представлена упрощенная блок-схема, показывающая существенные функциональные блоки клиентского устройства 10, намеревающегося послать запрос на предоставление услуги от набора 12 серверов. Клиентское устройство 10 может представлять собой аппаратные средства или программно-аппаратные средства, но может предпочтительно быть реализовано как блок клиентского программного обеспечения на пользовательском устройстве (не показано), например, на мобильном устройстве. Набор 12 серверов предполагается обеспечивающим приложения на основе протокола SIP в контексте мультимедийной IP-платформы (IMS) сети UMTS, с которой связано мобильное устройство. Для обеспечения приложений или услуг отказоустойчивым способом набор 12 серверов содержит четыре сервера от S1 до S4, каждый из которых полностью адаптирован для обеспечения любой из услуг, которые могут быть запрошены мобильным устройством, на котором находится клиентское устройство 10.
Клиентское устройство 10 содержит модуль 13 управления, модуль 14 управления вектором состояний, модуль 16 выбора серверов, память 18 и клиентский модуль 20. Память предполагается частью или секцией более крупной памяти устройства, в котором находится клиентское устройство 10, но может быть и частью аппаратных средств памяти, выделенной для клиентского устройства 10.
Со ссылкой на фиг. 3 ниже описан процесс выбора сервера в соответствии с изобретением более детально, на основе вектора состояний с временной отметкой доступности во взаимосвязи со значением задержки на элемент (2-й пример, описанный выше).
Первоначально модуль 13 управления запускается некоторым блоком, внешним по отношению к клиентскому устройству 10, чтобы запросить услугу от набора 12 серверов, т.е. инициировать установку сеанса под управлением одного из CSCF-серверов S1-S4. Блок запуска может быть связан с мультимедийным приложением на мобильном устройстве.
Предполагается, что транспортные (IP) адреса и порты каждого из серверов S1-S4 известны в клиентском устройстве 10. Это может быть реализовано модулем 13 управления путем запроса списка разрешения имен в отношении имени из набора 12 серверов у сервера имен (не показан) или некоторым иным способом.
Помимо этого и других действий модуль управления посылает команду на модуль 16 выбора сервера для считывания вектора состояний из памяти 18 и применения правил, относящихся к стратегии выбора сервера с максимальной доступностью, согласно изобретению, к элементам вектора состояний.
Вектор состояний содержит четыре элемента, по одному элементу для каждого из серверов от S1 до S4. Каждый элемент может содержать некоторую информацию, относящуюся к серверу (например, транспортный адрес, упомянутый выше), но, в частности, включает в себя информацию состояния, относящуюся к соответствующему серверу. Относительно информации состояния, вектор s состояний может быть представлен как вектор пар: s=[(-8,3, ∞ (11,2, 0,08), (14,1, 0,55), (13,5, 0,15)], где числа сохранены в памяти 18 в виде битовых последовательностей и представляют значения времени в секундах.
Любой знак «минус» в информации доступности, т.е. значение временной отметки как отрицательное числовое значение, может быть представлен в памяти в соответствии с процедурой, известной специалистам в данной области техники, включая, например, представление отрицательного значения временной отметки как дополняющего значения к 2 путем инвертирования всех битов и суммирования с 1.
Примерные значения взяты из 2-го примера, рассмотренного выше. Первое значение каждой пары (,) является значением временной отметки, а второе значение каждой пары является значением задержки.
Считав вектор состояний, модуль 16 выбора сервера выполняет первую операцию над всеми вторыми значениями пар информации состояния элементов вектора состояний, т.е. значений задержки. Каждое из значений задержки сравнивается с постоянной, а именно с пороговым значением задержки, которое в этом примере установлено один раз во время реализации клиентского устройства 10. Также возможно, что пороговое значение задержки изменяется, например, посредством модуля 13 управления, но не в течение описываемой процедуры выбора сервера.
В результате такой обработки каждая пара информации состояния, имеющая значение задержки ниже порогового значения, копируется вместе со связанной информацией, обозначающей соответствующий сервер, в вектор поднабора. Этот вектор, таким образом, содержит информацию состояний, относящуюся ко всем серверам набора серверов, у которых задержка транзакции короче, чем предварительно установленное пороговое значение. В описываемом примере вектор поднабора содержит информацию состояний серверов S2 и S4.
Модуль 16 выбора сервера далее обрабатывает вектор поднабора путем применения базового алгоритма МА. В случае, если не будет выявлено никакого поднабора, поскольку все значения задержек больше, чем пороговое значение задержки, модуль 16 адаптирован для применения базового алгоритма МА к самому вектору состояний.
Ввиду базового алгоритма МА первое значение каждой пары информации состояния в векторе поднабора анализируется, и выявляется пара информации состояния, которая имеет максимальное значение для этих первых значений. Иными словами, идентифицируется сервер, который имеет максимальное значение временной отметки, по результатам оценки, включая информацию доступности (знак '-'), если она имеется. В рассматриваемом примере первый элемент вектора поднабора имеет значение временной отметки 11,2 с, второй элемент имеет значение 13,5 с (в обоих элементах отсутствует явно выраженная информация доступности). Таким образом, указывается второй элемент вектора поднабора.
Поскольку этот элемент соответствует серверу S4, модуль выбора сервера идентифицирует транспортный адрес (и любую другую информацию, связанную с этим элементом) и возвращает транспортный адрес к модулю управления 13 в качестве ответа. Модуль управления использует возвращенную информацию для инициирования компоновки и посылки запроса на услугу на идентифицированный сервер (S4) через клиентский модуль 20. Запрос иллюстрируется сплошной линией на фиг. 3.
Предполагается, что сервер S4 отвечает на запрос, и транзакция, связанная с услугой, успешно завершается в момент времени, обозначенный как 15,3 с, как измерено в устройстве-хосте. Задержка в ответе на запрос составляла 0,37 с. Согласно варианту осуществления заявленного способа, как описано выше, вектор состояний, сохраненный в памяти 18, должен обновляться путем увязывания новой временной отметки и значений задержки с транспортным адресом сервера S4.
Для достижения этого модуль управления запускает модуль 14 управления вектором состояний после посылки запроса через клиентский модуль 20 на сервер S4. После запуска модуль 14 управления сначала определяет текущее время путем запроса модуля времени в устройстве-хосте (не показано), модуль времени возвращает последовательность, представляющую (в данном примере) значение 14,93 с. Затем модуль 14 запускает таймер, назначенный данному конкретному запросу. Таймер отсчитывает предварительно определенное время 10 с.
Модуль 13 управления посылает другой сигнал запуска на модуль 14 управления после приема окончательного ответа от сервера S4. Ввиду второго запуска модуль 14 управления сначала определяет текущее время путем запроса модуля времени, который возвращает последовательность, представляющую (в данном примере) значение 15,3 с. Затем модуль 14 управления останавливает таймер.
Далее модуль управления подготавливает новую пару информации состояния ((факультативно, информацию доступности), значение временной отметки, значение задержки). Когда второй сигнал запуска принят перед остановкой таймера, никакая информация доступности не связана с временной отметкой. Значение временной отметки принимается в виде второй последовательности времени от модуля времени. Значение задержки вычисляется путем вычитания первой последовательности времени из второй последовательности времени, в результате чего получается значение 0,37 с.
Если сервер S4 не ответил, то никакой второй сигнал запуска не поступит на модуль 14 управления состояниями. Затем таймер останавливается спустя 10 с. В этот момент времени модуль 14 также посылает свой второй запрос на модуль времени, что приводит к получению второй последовательности времени, представляющей момент времени, когда таймер остановился. Кроме того, модуль 14 подготавливает элемент вектора состояний для сервера S4 с информацией доступности '-', временной отметкой, как задано второй последовательностью времени, возвращенной от модуля времени, и значением задержки, конкретно заданным для устройства представлением числового значения «бесконечность» или '∞' Второй сигнал запуска, поступивший после остановки таймера, не обрабатывается модулем 14 управления, а игнорируется.
В конечном счете модуль 14 управления сохраняет скомпонованную пару информации состояния в векторе состояний, сохраненном в памяти 18 в четвертой позиции, т.е. в позиции, связанной с транспортным адресом сервера S4. Относительно информации состояний, в предположении, что транзакция, связанная с услугой, успешно завершена, обновленный вектор состояний теперь считывает s=[(-8,3, ∞ (11,2, 0,08), (14,1, 0,55), (15,3 0,37)].
Конкретные описанные примеры иллюстрируют несколько соответствующих вариантов осуществления изобретения. В объеме изобретения, который определяется исключительно формулой изобретения, возможно множество других вариантов осуществления.
Например, модуль управления вектором состояний (ссылочная позиция 14 на фиг. 3) и модуль (16) выбора сервера описаны как отдельные объекты в клиентском устройстве (10). Специалисту в данной области техники должно быть понятно, что эти модули могут быть также реализованы как единый модуль.
Список ссылочных позиций
S1-S4 серверы набора серверов
t1-t4 значения временных отметок в векторе состояний
10 клиентское устройство
12 набор серверов
13 модуль управления
14 модуль управления вектором состояний
16 модуль выбора сервера
18 память
20 клиентский модуль

Claims (15)

1. Способ выбора одного сервера (S1-S4) из набора (12) серверов для запроса одной или более услуг, например, связанных, по меньшей мере, с одним основанным на сеансе Интернет-приложением, при этом каждый из серверов (S1-S4) из набора (12) серверов имеет возможность поддерживать упомянутые услуги, причем способ содержит следующие этапы:
поддерживают вектор состояний, при этом присваивают, по меньшей мере, двум элементам вектора состояний информацию состояний, причем каждая информация состояния представляет состояние одного из серверов (S1-S4) набора (12) серверов,
выбирают сервер (S1-S4) путем применения предварительно определенного правила выбора к информации состояния элементов вектора состояний и
запрашивают услугу(и) от выбранного сервера (S1-S4), отличающийся тем, что, по меньшей мере, один тип информации состояния содержит значение временной отметки (t1-t4), указывающее момент времени, в который определяется состояние соответствующего сервера (S1-S4), правило выбора содержит этап определения максимального значения временной отметки (t1-t4) в векторе состояний и выбора соответствующего сервера (S1-S4).
2. Способ по п.1, отличающийся тем, что информация состояния содержит информацию доступности, указывающую на доступность соответствующего сервера (S1-S4), связанную со значением временной отметки (t1, t4).
3. Способ по п.2, отличающийся тем, что информация доступности представлена знаком «минус» в случае, если соответствующий сервер (S1, S4) не доступен.
4. Способ по любому из пп.1-3, отличающийся этапом присвоения информации состояния конкретному элементу вектора состояний в ответ на завершение или неуспех транзакции с соответствующим сервером (S1-S4).
5. Способ по любому из пп.1-3, отличающийся этапом присвоения информации состояния конкретному элементу вектора состояний в ответ на завершение или неуспех взаимного соединения, посредством передачи периодического контрольного сообщения, с соответствующим сервером (S1-S4).
6. Способ по любому из пп.1-3, отличающийся этапом присвоения информации состояния конкретному элементу вектора состояний в ответ на прием от третьей стороны информации состояния третьей стороны для одного или более серверов (S1-S4) набора (12) серверов.
7. Способ по любому из пп.1-3, отличающийся тем, что информация состояний дополнительно содержит значение задержки, указывающее время отклика приложения соответствующего сервера.
8. Способ по п.7, отличающийся тем, что правило выбора содержит этап определения поднабора элементов вектора состояний, причем поднабор включает в себя те элементы, у которых значение задержки ниже предварительно определенного порогового значения задержки.
9. Способ по п.8, отличающийся тем, что правило выбора содержит этап определения максимального значения временной отметки в поднаборе элементов вектора состояний и выбора соответствующего сервера (S1-S4).
10. Способ по п.9, отличающийся тем, что правило выбора содержит этап определения поднабора элементов вектора состояний, причем поднабор включает в себя те элементы, у которых значения временных отметок являются положительным числом, и при вычитании из максимального значения значений временных отметок приводит к значению меньшему, чем значение предварительно определенного диапазона временных отметок.
11. Способ по п.10, отличающийся тем, что правило выбора содержит этап определения минимального значения задержки в поднаборе элементов вектора состояний и выбора соответствующего сервера (S1-S4).
12. Клиентское устройство (10) для реализации способа по любому из предыдущих пунктов, содержащее:
модуль (13) управления для управления другими модулями (10, 16, 20) клиентского устройства (10),
память (18) для хранения вектора состояний, при этом, по меньшей мере, двум элементам вектора состояний присваивается информация состояний, причем каждая информация состояния представляет состояние одного из серверов (S1-S4) набора (12) серверов,
модуль (14) управления вектором состояний для поддержания вектора состояний путем записи информации состояний в память (18),
модуль (16) выбора сервера для считывания вектора состояний из памяти (18), применения предварительно определенного правила выбора к элементам вектора состояний и определения при этом выбираемого сервера (S1-S4),
клиентский модуль (20) для запроса услуги от выбранного сервера (S4), отличающееся тем, что память (18) предназначена для хранения, по меньшей мере, одного типа информации состояния, которая содержит значение (t1-t4) временной отметки, указывающее момент времени, в который определяется состояние соответствующего сервера (S1-S4), модуль (14) управления вектором состояний предназначен для записи такой информации состояния в память (18) и модуль (16) выбора сервера предназначен для определения максимального значения временной отметки в векторе состояний и соответствующего сервера (S1-S4).
13. Клиентское устройство по п.12, отличающееся тем, что модуль (14) управления вектором состояний предназначен для присвоения информации доступности значению временной отметки и для записи информации доступности и значения временной отметки в виде информации состояния в память (18).
14. Клиентское устройство по п.12 или 13, отличающееся тем, что память (18) предназначена для хранения информации состояния, содержащей значение задержки, а модуль (14) управления вектором состояний предназначен для записи такой информации состояний в память (18).
15. Клиентское устройство по п.12 или 13, отличающееся тем, что модуль (16) выбора сервера предназначен для определения поднаборов элементов вектора состояний на основе определения информации состояний в соответствии с одной или более постоянных, например пороговым значением задержки или значением диапазона временных отметок.
RU2007103174/09A 2004-06-29 2004-06-29 Способ выбора сервера из набора серверов RU2344562C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2007103174/09A RU2344562C2 (ru) 2004-06-29 2004-06-29 Способ выбора сервера из набора серверов

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2007103174/09A RU2344562C2 (ru) 2004-06-29 2004-06-29 Способ выбора сервера из набора серверов

Publications (2)

Publication Number Publication Date
RU2007103174A RU2007103174A (ru) 2008-08-10
RU2344562C2 true RU2344562C2 (ru) 2009-01-20

Family

ID=39745774

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2007103174/09A RU2344562C2 (ru) 2004-06-29 2004-06-29 Способ выбора сервера из набора серверов

Country Status (1)

Country Link
RU (1) RU2344562C2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2515703C2 (ru) * 2009-08-12 2014-05-20 Зте Корпорэйшен Способ и сервисное устройство для осуществления персонального разговора во время конференции в сети ims

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2515703C2 (ru) * 2009-08-12 2014-05-20 Зте Корпорэйшен Способ и сервисное устройство для осуществления персонального разговора во время конференции в сети ims

Also Published As

Publication number Publication date
RU2007103174A (ru) 2008-08-10

Similar Documents

Publication Publication Date Title
EP1762069B1 (en) Method of selecting one server out of a server set
Jelasity et al. Gossip-based peer sampling
KR101391059B1 (ko) Sip 생존가능 구성에서 sip 메시지를 이용한 페일오버/페일백 트리거
US8005955B2 (en) Quasi-high availability hosted applications
US7752630B2 (en) System sending behavior modification hint to client to suggest alternative servers based on operating conditions of current server
US7518983B2 (en) Proxy response apparatus
US9130967B2 (en) Method and system for network element service recovery
US20040103194A1 (en) Method and system for server load balancing
US7441035B2 (en) Reliable server pool
US9075660B2 (en) Apparatus and method for providing service availability to a user via selection of data centers for the user
KR20070103772A (ko) 중복적인 sip 프록시 자원들의 이용가능
US20070043842A1 (en) Method and system for managing client-server affinity
CN111464612B (zh) 一种恶劣环境下提供稳定计算服务的方法
CN102257792B (zh) 用于包括策略数据库的内容传递的方法
CN112671554A (zh) 一种节点故障处理方法及相关装置
US8880665B2 (en) Nonstop service system using voting, and information updating and providing method in the same
CA2554938A1 (en) Method of providing a reliable server function in support of a service or a set of services
Chawathe et al. System support for scalable and fault tolerant internet services
CN1725758A (zh) 用于使分布式系统同步的方法
RU2344562C2 (ru) Способ выбора сервера из набора серверов
CN111880932A (zh) 一种基于多网口的数据存储方法及装置
CN110661836B (zh) 消息路由方法、装置及系统、存储介质
WO1993018464A1 (en) Distributed processing system
KR20070039096A (ko) 서버 세트중에서 하나의 서버를 선택하기 위한 방법
JP4123440B2 (ja) オブジェクト指向のネットワーク分散型コンピューティングシステム、その負荷分散装置及びサーバ

Legal Events

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

Effective date: 20200630