БЛИЖАЙШИЙ УЗЕЛ ДЛЯ СОЕДИНЕНИЙ РАСПРЕДЕЛЕННЫХ СЛУЖБ
NEXT SITE FOR DISTRIBUTED SERVICE CONNECTIONS

Область техники, к которой относится изобретение
Современные компьютерные системы обеспечивают возможность обмена данными и ресурсами через сетевые среды. Например, современная компьютерная сеть может включать в себя некоторое количество взаимосвязанных клиентских компьютеров. Компьютерная сеть может дополнительно включать в себя некоторые ресурсы. Такие ресурсы могут представлять собой в качестве примера, но не ограничения файловые серверы для хранения данных, доступных для клиентов, серверы печати для обеспечения клиентам доступа к принтерам и совместно используемые хранилища на клиентских компьютерах для хранения данных, которые должны быть доступны для других клиентов и ресурсов в сети.
Сети варьируются по размеру. Сети поменьше включают в себя локальные сети (LAN). Примеры сетей LAN включают в себя домашние сети и небольшие сети предприятий, где сеть находится в одном доме или в одном местоположении предприятия. Более крупные сети включают в себя глобальные сети (WAN). Один обычный пример WAN представляет собой глобальную сеть Интернет. Другой пример включает в себя совокупность сетей LAN, взаимосвязанных для создания сети масштаба предприятия. Подобной сетью масштаба предприятия является сеть «лес». Лес представляет собой некоторую группу систем под центральным управлением.
Когда сети LAN взаимосвязаны для создания сети масштаба предприятия, с целью соединения филиалов компании, могут использоваться сетевые концентраторы, чтобы обеспечить возможность соединения для сети масштаба предприятия. Обычно сеть масштаба предприятия включает в себя некоторое количество распределенных служб, рассредоточенных по всей сети масштаба предприятия. Клиенты в сети масштаба предприятия могут быть зарегистрированы в одной из таких распределенных служб. Распределенная служба, в которой клиент зарегистрирован, обеспечивает функциональные возможности маршрутизации, которые позволяют доставлять сообщения от зарегистрированного клиента к другим клиентам в сети масштаба предприятия и позволяют доставлять сообщения от других клиентов к зарегистрированному клиенту. Распределенная служба может включать в себя функциональные возможности для обеспечения безопасности для сети. Например, распределенные службы могут включать в себя функциональные возможности для аутентификации сообщений в сети с целью предотвращения передачи по сети несанкционированных и/или злонамеренных сообщений.
Сеть масштаба предприятия может быть скомпонована как совокупность узлов, где каждый узел представляет собой некоторый диапазон сетевых адресов. Например, узел может быть задан как некоторая совокупность адресов межсетевого протокола (IP). Часто IP-адреса присваиваются на основе географической и/или логической близости. Таким образом, клиенты и распределенные службы с похожими IP-адресами и особенно с IP-адресами в пределах одного и того же узла часто бывают географически и/или логически близки друг к другу. Из-за того, что большинство или все сообщений к клиенту проходят через распределенные службы, в которых клиент зарегистрирован, часто бывает выгодно регистрировать клиента в распределенных службах в том же узле, где находится клиент. Одно из преимуществ близости клиента и распределенной службы состоит в уменьшении полного сетевого трафика из-за того, что для достижения удаленной распределенной службы каждое сообщение к клиенту и от него не должно маршрутизироваться к распределенной службе через несколько сетевых соединений.
Однако, к сожалению, могут возникать ситуации, в которых клиент не способен регистрироваться или осуществлять связь с распределенной службой в том же узле, где и клиент. Когда это происходит, клиент может случайным образом выбирать другую распределенную службу на другом узле для регистрации. Понятно, что это может привести к регистрации клиента в некоторой распределенной службе, которая географически и/или логически далеко удалена от клиента.
Заявленное здесь изобретение не ограничивается вариантами осуществления, которые устраняют какие-либо недостатки или которые действуют только в средах, таких как описаны выше. Скорее это описание предшествующего уровня техники обеспечивается только для иллюстрации одной иллюстративной области технологии, в которой могут осуществляться на практике некоторые описанные здесь варианты осуществления.
Сущность изобретения
Один вариант осуществления направлен на способ регистрации клиента в распределенной службе. Способ может осуществляться на практике, например в сетевой вычислительной среде, включающей в себя клиент на локальном узле и несколько распределенных служб на нескольких удаленных узлах. Способ включает в себя выполнение эхо-тестирования в отношении одной или нескольких распределенных служб на одном или нескольких удаленных узлах. От распределенной службы из числа упомянутых одной или нескольких распределенных служб принимается сообщение. Это сообщение задает оптимальный удаленный узел. Способ дополнительно включает в себя регистрацию в распределенной службе на оптимальном удаленном узле.
Другой вариант осуществления, описанный здесь более подробно, включает в себя способ предоставления от распределенной службы на удаленном узле клиенту на локальном узле указание оптимального удаленного узла. Способ может осуществляться на практике, например в сетевой вычислительной среде, включающей в себя клиент на локальном узле и несколько распределенных служб на нескольких удаленных узлах. Способ включает в себя прием запроса эхо-тестирования (PING) от клиента. Оптимальный удаленный узел определяется, основываясь на информации о клиенте и информации о линии связи, соединяющей клиента с оптимальным удаленным узлом. Способ дополнительно включает в себя отправление сообщения клиенту. Это сообщение задает оптимальный удаленный узел.
Данное изложение сущности изобретения обеспечивается для внесения некоторого выбора концепций в упрощенной форме, которые дополнительно описаны ниже в подробном описании. Упомянутое изложение сущности изобретения не предназначено ни чтобы идентифицировать ключевые признаки или существенные признаки заявленного изобретения, ни чтобы использоваться с целью определения объема заявленного изобретения.
Дополнительные признаки и преимущества будут сформулированы в последующем описании и частично будут очевидны из описания либо могут изучаться при практической реализации изложенных здесь идей. Признаки и преимущества могут быть реализованы и получены посредством инструментальных средств и комбинаций, отмеченных в приложенной формуле изобретения. Признаки настоящего изобретения станут полностью очевидны из последующего описания и приложенной формулы изобретения или могут изучаться при практической реализации изобретения, как здесь изложено.
Перечень чертежей
Чтобы описать способ, которым могут быть получены вышеизложенные и другие преимущества и признаки, более конкретное описание изобретения, коротко описанного выше, будет представлено со ссылкой на конкретные варианты осуществления, которые иллюстрируются на сопровождающих чертежах. В понимании, что эти чертежи показывают только типичные варианты осуществления и, следовательно, не должны рассматриваться как ограничивающие рамки изобретения, варианты осуществления будут описываться и объясняться с дополнительной спецификой и подробно с использованием сопровождающих чертежей, на которых:
фиг.1 иллюстрирует сеть масштаба предприятия,
фиг.2 иллюстрирует способ регистрации в распределенной службе на некотором удаленном узле,
фиг.3 иллюстрирует способ передачи клиенту сообщения, указывающего оптимальный удаленный узел, и
фиг.4 иллюстрирует систему, в которой некоторые варианты осуществления могут осуществляться на практике.
Подробное описание предпочтительных вариантов осуществления
Здесь варианты осуществления могут содержать компьютер специального назначения или общего назначения, включающий в себя различные компьютерные аппаратные средства, как обсуждается более подробно ниже.
Здесь один вариант осуществления ориентирован на систему, в которой распределенные службы в сети масштаба предприятия могут обеспечить клиенту индикацию того, что распределенная служба расположена на некотором удаленном от клиента узле, который является оптимальным удаленным узлом. Если клиент не может зарегистрироваться в распределенной службе, находящейся в том же узле, что и клиент, то клиент будет пытаться зарегистрироваться в распределенной службе на оптимальном удаленном узле. Оптимальный удаленный узел может быть определен на поклиентной основе. Например, каждый клиент в сети масштаба предприятия имеет оптимальный удаленный узел, который может быть или может не быть тем же самым оптимальным удаленным узлом для других клиентов в сети масштаба предприятия. Узел может быть определен как оптимальный удаленный узел со ссылкой на различные факторы, такие как характеристики клиента, характеристики систем на удаленном узле, и характеристики одной или нескольких линий связи, взаимосвязывающих клиента с оптимальным удаленным узлом. Например, каждой линии связи, взаимосвязывающей клиента с удаленным узлом, может быть присвоен индексный номер, который сопоставим с другими линиями связи в сети масштаба предприятия. Каждый индексный номер может быть определен со ссылкой на различные характеристики, на основе которых с помощью формул получают индексный номер. Формулы могут включать в себя, например, ссылку на такие факторы, как надежность линии связи, монетарная стоимость в минуту или мера данных на линии связи, время ожидания или производительность линии связи, предпочтения пользователя, безопасность линии связи, сетевое оборудование, управленческие расходы, ширина полосы пропускания линии связи и конфликтующие использования линии связи. Распределенные службы в сети масштаба предприятия могут включать в себя таблицу, которая включает в себя индексные номера от линии связи к линии связи, а также способность вычислять индексный номер для клиента для конкретного узла. Индексные номера, вычисленные для линий связи между клиентом и различными узлами, могут сравниваться так, что распределенная служба может возвращать клиенту сообщение, указывающее оптимальный удаленный узел в узле с наиболее оптимальным индексным номером.
На фиг.1 иллюстрируется более подробный пример с использованием схематической ссылки на сеть 100 масштаба предприятия. Сеть 100 масштаба предприятия показана как включающая в себя несколько узлов, включая узел A, узел B, узел C и узел D. Локальный узел A 102 включает в себя распределенную службу (DS) 104, которая может включать в себя различные службы, которые могут обеспечиваться для клиентов в сети 100 масштаба предприятия. Фиг.1 дополнительно иллюстрирует клиент 106 на локальном узле A 102. Локальный узел A 102 соединен с удаленным узлом B 108 линией 110 связи. Удаленный узел B 108 также соединен с удаленным узлом D 112 линией 114 связи. Удаленный узел B 108 также соединен с удаленным узлом C 116 линией 118 связи. Удаленный узел D 112 показан как включающий в себя распределенную службу 121. Удаленный узел C показан как включающий в себя несколько распределенных служб, включая в себя распределенную службу 120, распределенную службу 122 и распределенную службу 124.
При нормальной работе клиент 106 предпочитает регистрироваться в распределенной службе 104, расположенной на локальном узле, т.е. локальном узле A 102, клиента 106. Однако могут возникать ситуации, когда распределенная служба 104 недоступна для регистрации клиентов. Клиент 106 может сначала пытаться зарегистрироваться в некоторой распределенной службе на локальном узле A 102. Когда клиент 106 поймет, что на локальном узле A 102 нет доступных распределенных служб для регистрации клиентов, клиент 106 будет пытаться открыть следующий ближайший узел для регистрации в распределенной службе на этом следующем ближайшем узле.
В примере, показанном на фиг.1, клиент 106 посылает запрос эхо-тестирования (PING) 126 в распределенную службу 120 в сети 100 предприятия. Выбор распределенной службы 120 в качестве узла для эхо-тестирования может выполняться в одном из вариантов осуществления случайным способом клиентом, обращающимся к записи распределенных служб в сети 100 масштаба предприятия. Как только клиент 106 послал PING 126 в распределенную службу 120, клиент будет ожидать в течение короткого интервала, чтобы позволить распределенной службе ответить. Если распределенная служба 120 не отвечает, то клиент 106 может выполнить эхо-тестирование в отношении других распределенных служб в сети 100 масштаба предприятия. Однако для этого примера предполагается, что распределенная служба 120 способна отвечать на PING 126 от клиента 106. Сообщение, посланное как часть PING 126, может включать в себя указание распределенной службе того, что клиент 106 имеет функциональные возможности для поддержки и осуществления связи с использованием сообщений, в которых распределенная служба 120 возвращает указание оптимального удаленного узла для того, чтобы клиент 106 установил контакт с распределенной службой. Например, клиент 106 может включать в сообщение, которое является частью PING 126, флаг, который показывает способность клиента принимать указание оптимального удаленного узла.
Распределенная служба 120, посредством обращения к этому флагу, может определить, что на клиент следует послать сообщение 128, которое включает в себя указание оптимального удаленного узла для клиента 106. В альтернативных вариантах осуществления, распределенная служба 120 может не обращаться к флагу, посланному в PING, но может предположить, что все клиенты и распределенные службы в сети 100 масштаба предприятия поддерживают способность принимать информацию об оптимальном удаленном узле. В одном из вариантов осуществления, обеспечение флага клиентом 106 и обращение к флагу распределенной службой просто обеспечивает обратную совместимость так, чтобы системы, которые включают в себя функциональные возможности запрашивать информацию об оптимальном удаленном узле, и системы, которые включают в себя функциональные возможности обеспечивать информацию об оптимальном удаленном узле, могли использоваться с системами, которые не включают в себя такие функциональные возможности.
Распределенная служба, такая как распределенная служба 120 или другие распределенные службы, показанные на фиг.1, может включать в себя функциональные возможности для создания и/или сохранения некоторой таблицы соответствия, которая включает в себя индексы, которые могут быть использованы для определения индексного номера для линии связи между клиентом 106 и различными узлами: узлом A 102, узлом B 108, узлом C 116 и узлом D 112 в сети 100 масштаба предприятия. Например, как иллюстрируется на фиг.1, линия 110 связи между локальным узлом A 102 и удаленным узлом B 108 имеет индексную стоимость, равную 1000. Данное число представляет результаты алгоритма, который определяет индексную стоимость, основываясь на таких факторах, как надежность линии связи, стоимость линии связи, физическая близость между узлами и т.д. Значение индекса, равное 1000, может быть сохранено в стоимостной таблице соответствия, хранимой в каждой из распределенных служб в сети 100 предприятия. Линия 114 связи между удаленным узлом B 108 и удаленным узлом D 112 имеет индексную стоимость 500, как иллюстрируется на фиг.1. Линия 114 связи между удаленным узлом B 108 и удаленным узлом C 116 имеет индексную стоимость 1000, как иллюстрируется на фиг.1.
Теперь в иллюстрации функциональных возможностей одного варианта осуществления клиент посылает PING 126 в распределенную службу 120. PING 126 может включать в себя информацию о местоположении клиента 106. Например, PING 126 может включать в себя IP-адрес клиента 106. IP-адрес клиента 106 может быть использован для идентификации клиента, как члена локального узла A 102. Затем, зная, что клиент 106 находится на локальном узле A 102, распределенная служба 120 может вычислить следующий узел, ближайший к клиенту 106. Например, распределенная служба 120 обращается к таблице стоимостных индексов для определения того, что клиент 106 может осуществлять доступ к удаленному узлу B 108 при стоимости 1000. Клиент 106 может осуществлять доступ к удаленному узлу D 112 при стоимости 1500. Клиент 106 может осуществлять доступ к удаленному узлу C при стоимости 2000. По существу, распределенная служба 120 возвращает клиенту 106 сообщение 128, указывающее, что удаленный узел B является ближайшим или оптимальным удаленным узлом для клиента 106. Затем клиент может регистрироваться в распределенной службе 130 на удаленном узле B 108.
В одном из вариантов осуществления, если клиент 106 не способен зарегистрироваться в распределенной службе на оптимальном удаленном узле, например, как в случае удаленного узла B 108, то клиент 106 может возвратиться к схеме, посредством которой клиент 106 регистрируется в некотором произвольном контроллере домена, входящем в список контроллеров доменов.
В альтернативном варианте осуществления распределенная служба 120 может обеспечить ранжированный список ближайших узлов, так что если клиенту 106 не удается подсоединиться к распределенной службе на наиболее оптимальном удаленном узле, то есть удаленном узле B 108, то клиент 106 может попытаться установить контакт с распределенной службой в следующем наиболее оптимальном удаленном узле. Например, распределенная служба 120 может возвратить клиенту 106 сообщение 128, что удаленный узел B 108 является наиболее оптимальным удаленным узлом для соединения (с индексом 1000), удаленный узел D 112 является следующим наиболее оптимальным удаленным узлом (с индексом 1500) и удаленный узел C 116 является следующим наиболее оптимальным удаленным узлом (с индексом 2000) после удаленного узла D 112. По существу, если клиенту 106 не удается зарегистрироваться в распределенной службе 130 на удаленном узле B 108, то клиент может попытаться зарегистрироваться в распределенной службе 121 на удаленном узле D 112. Если клиенту 106 не удается зарегистрироваться в распределенной службе на удаленном узле D, то клиент 106 может попытаться зарегистрироваться в распределенной службе 120, 122 или 124 на удаленном узле C 116.
Выше описаны варианты осуществления в общих терминах. Однако следует понимать, что также могут быть реализованы некоторые специфические варианты осуществления. Например, варианты осуществления, описанные выше, могут осуществляться в некотором варианте осуществления, соответствующем активному каталогу (Active Directory), с использованием технологии Active Directory, доступной на серверах от "Мicrosoft", г. Редмонд, шт. Вашингтон. Например, распределенные службы, описанные здесь ранее, могут воплощаться как контроллеры доменов на узлах в лесу активных каталогов.
На фиг.2 иллюстрируется способ 200 регистрации клиента в распределенной службе. Способ 200 может осуществляться на практике, например, в сетевой вычислительной среде, включающей в себя клиент на локальном узле и несколько распределенных служб на нескольких удаленных узлах. Способ 200 включает в себя действие по выполнению эхо-тестирования в отношении одной или нескольких распределенных служб на одном или нескольких удаленных узлах, чтобы выявить распределенную службу на оптимальном удаленном узле (действие 202). Возвратимся снова к фиг.1, на которой иллюстрируется пример выполнения эхо-тестирования клиентом 106 в отношении распределенной службы 120 на удаленном узле C 116. Как показано на фиг.1, клиент 106 посылает PING 126 в распределенную службу 120 на узле C. В одном из вариантов осуществления выполнение эхо-тестирования в отношении одной или нескольких распределенных служб на одном или нескольких удаленных узлах (действие 202) может включать в себя отправление флага, указывающего, что клиент поддерживает прием сообщений, задающих оптимальный удаленный узел. Например, и как показано на фиг.1, PING 126 может включать в себя флаг, который указывает, что клиент 106 способен принимать информацию об оптимальном удаленном узле. Если распределенная служба 120 поддерживает функциональные возможности для доставки информации об оптимальном удаленном узле, то распределенная служба 120 может анализировать PING 126 для определения того, желает ли клиент 106 принимать информацию об оптимальном удаленном узле.
В одном из вариантов осуществления, эхо-тестирование в отношении одной или нескольких распределенных служб на одном или нескольких удаленных узлах (действие 202) может выполняться после первой попытки установить контакт с распределенной службой на том же узле, что и клиент. Например, и как показано на фиг.1, клиент 106 может сначала пытаться зарегистрироваться в распределенной службе 104 на локальном узле A 102. Если распределенная служба недоступна или если клиент 106 не способен установить контакт с распределенной службой 104, то клиент пошлет PING 126 в распределенную службу 120 на удаленном узле C 116.
Как показано на фиг.2, способ, далее, включает в себя действие приема сообщения от распределенной службы из числа одной или нескольких распределенных служб, причем это сообщение задает оптимальный удаленный узел (действие 204). В одном из вариантов осуществления сообщение может быть сообщением UDP (протокола пользовательских датаграмм). Как показано на фиг.1, распределенная служба 120 отвечает на PING 126, посылая сообщение 128. Сообщение 128 может включать в себя информацию, задающую оптимальный удаленный узел от узла A 102, к которому принадлежит клиент 106. В примере, показанном на фиг.1, оптимальным удаленным узлом является удаленный узел B 108. В конкретном примере, показанном на фиг.1, удаленный узел является оптимальным удаленным узлом потому, что линия связи, соединяющая локальный узел A 102 с удаленным узлом B 108, имеет более низкий индекс, чем линии связи с другими удаленными узлами 112, 116.
Как упоминалось ранее, чтобы сравнивать линии связи от локальных узлов до удаленного узла, могут быть использованы индексные номера. По существу, удаленный узел может определяться как оптимальный удаленный узел на основании индекса, сопоставимого с индексами для других узлов. Порядковые номера могут вычисляться с использованием нескольких различных факторов. Например, индекс может вычисляться с использованием, по меньшей мере, физической близости клиента с оптимальным удаленным узлом, монетарной стоимости линии связи, соединяющей клиента с оптимальным удаленным узлом, надежности линии связи, времени ожидания или производительности линии связи, предпочтений пользователя, безопасности линии связи, сетевого оборудования, управленческих расходов, ширины полосы пропускания линии связи или конфликтующих использований линии связи.
Как описано выше, одним из факторов, который может быть использован при вычислении индексов линий связи, соединяющих узлы, является денежная стоимость линии связи. Например, различные типы линий связи могут иметь различные денежные стоимости, ассоциированные с их использованием. Например, каждое из коммутируемых соединений, прямых соединений с Ethernet, спутниковых соединений, соединений DSL (цифровой абонентской линии), беспроводных соединений и т.д., имеет отличающуюся денежную стоимость при сравнении друг с другом. В примере, показанном на фиг.1, на которой более низкий порядковый номер указывает, какая линия связи является наиболее оптимальной, соединения, которые имеют наименьшую денежную стоимость, могут привести к более низкому индексному номеру для линии связи.
Как отмечалось ранее, другим фактором, который может быть использован при вычислении индексного номера, может быть надежность линии связи, соединяющей клиента с оптимальным удаленным узлом. Некоторые типы связи являются менее надежными, чем другие типы связи. Таким образом, тип связи, который является более надежным, может привести к более низкому индексному номеру для линии связи.
Еще одним фактором, который может быть использован при определении индексного номера, является время ожидания или производительность линии связи. Некоторые линии связи способны передавать данные при более высоких скоростях, чем другие линии связи. Это может быть благодаря типу технологии, который используется для создания линии связи, или объему трафика на линии связи, или по различным другим причинам. Таким образом, в одном из вариантов осуществления, линии связи с более высокой производительностью и более низким временем ожидания могут иметь более низкие индексные номера.
Другой фактор, который может быть использован при определении индекса для линии связи, относится к безопасности линии связи. Например, некоторые типы линий связи имеют более высокие уровни шифрования или являются более защищенными. Часто, проводные линии связи являются более защищенными, чем беспроводные линии связи. Некоторые типы беспроводного шифрования являются более защищенными, чем иные типы беспроводного шифрования. Таким образом, в одном из вариантов осуществления более защищенные линии связи могут иметь более низкий индексный номер или индексное указание того, что линия связи является более или менее оптимальной, чем менее защищенные линии связи.
Еще один фактор, который может быть использован при определении значения индекса для линии связи, относится к ширине полосы пропускания линии связи. В одном из вариантов осуществления, ширина полосы пропускания линии связи относится к ширине полосы пропускания, доступной для обслуживания дополнительных клиентов. Таким образом, в одном иллюстративном варианте осуществления, хотя линия связи может иметь возможность использования, в целом, большей ширины полосы пропускания, линия связи может действительно приводить к более высокому индексу, когда линия связи имеет менее доступную ширину полосы пропускания, потому что эта линия связи предназначена для обслуживания других клиентов или служб в сети.
Другой фактор, который может быть использован для определения индексного номера для линии связи, относится к конфликтующим использованиям линии связи. Например, некоторые линии связи могут быть значимыми для обслуживания различных типов сетевого трафика и, следовательно, резервироваться для этих типов сетевого трафика. Таким образом, линия связи может принимать более высокое значение индекса, потому что линия связи используется для различных типов сетевой связи, для которых быть прерванными менее желательно, чем для другой связи на других линиях связи.
Оптимальный удаленный узел может быть определен путем идентификации локального узла посредством обращения к IP-адресу клиента. Например, как показано на фиг.1, IP-адрес клиента 106 может обеспечить указание того, что клиент 106 находится на локальном узле A 102. По существу, распределенная служба 120 может определять наиболее оптимальный узел путем сравнения линий связи, взаимосвязывающих узел A 102 с другими узлами в сети 100 масштаба предприятия. Как обсуждалось здесь ранее, значение индекса для линии связи от узла A 102 до узла B 108 составляет 1000. Значение индекса линии связи, взаимосвязывающей узел A 102 с узлом D 112, составляет 1500. Значение индекса линии связи, взаимосвязывающей узел A 102 с узлом C 116, составляет 2000. Таким образом, распределенная служба 120 может определить, что наиболее оптимальным узлом для клиента 106 является узел B 108.
Особенно, в показанных выше примерах, более низкие значения индекса иллюстрируются как имеющие наиболее оптимальный характер. Однако можно представить сценарии, где более высокие значения индекса являются более оптимальными, или для указания оптимальности линии связи используются другие индексные индикаторы. Таким образом, иллюстрируемые здесь варианты осуществления не должны ограничиваться только вариантами осуществления, где только более низкие значения индекса указывают наиболее оптимальную линию связи.
Способ 200, иллюстрируемый на фиг.2, дополнительно включает в себя действие по регистрации в распределенной службе на оптимальном удаленном узле (действие 206). Таким образом, как иллюстрируется на фиг.1, клиент 106 может зарегистрироваться в распределенной службе 130 на оптимальном узле B 108.
Способ 200 может дополнительно включать в себя возврат к способу случайного эхо-тестирования для поиска распределенной службы, если не принимается никакого сообщения, указывающего оптимальный удаленный узел. Например, как показано на фиг.1, если распределенная служба 120 не поддерживает сообщение, задающее наиболее оптимальный узел, то клиент 106 не примет никакое сообщение 128, указывающее оптимальный удаленный узел. По существу, клиент 106 может возвратиться к некоторой схеме, в результате чего клиент 106 случайным образом выбирает некоторую распределенную службу для регистрации. В альтернативных вариантах осуществления, клиент 106 может посылать PING другим распределенным службам в сети предприятия, чтобы выявить распределенную службу, которая поддерживает доставку информации об оптимальном узле.
Обратимся теперь к фиг.3, на которой иллюстрируется способ 300 обеспечения указания оптимального удаленного узла для клиента. Способ 300 может осуществляться на практике, например, в сетевой вычислительной среде, включающей в себя клиент на локальном узле и несколько распределенных служб на нескольких удаленных узлах. Способ включает в себя действие по приему PING 126 от клиента (действие 302). Как показано на фиг.1, распределенная служба 120 может принимать PING 126 от клиента 106. Как описано здесь ранее, PING 126 может включать в себя флаг, который указывает, что клиент 106 поддерживает прием сообщений, задающих оптимальный удаленный узел.
Способ 300 дополнительно включает в себя действие по определению оптимального удаленного узла, основываясь на информации о клиенте и на информации о линии связи, соединяющей клиента с оптимальным удаленным узлом (действие 304). Определение оптимального удаленного узла (действие 304) может включать в себя сравнение индекса оптимального удаленного узла с индексами других узлов. Индекс может вычисляться посредством использования физической близости клиента и оптимального удаленного узла, монетарной стоимости линии связи, соединяющей клиента с оптимальным удаленным узлом, надежности линии связи, времени ожидания или производительности линии связи, предпочтений пользователя, безопасности линии связи, сетевого оборудования, управленческих расходов, ширины полосы пропускания линии связи или конфликтующих использований линии связи. В одном из вариантов осуществления, оптимальный удаленный узел может быть определен путем идентификации локального узла посредством обращения к IP-адресу клиента. Например, как показано на фиг.1, клиент 106 может иметь IP-адрес, который соответствует диапазону IP-адресов для узла A 102.
В одном из вариантов осуществления, способ 300 может включать в себя вычисление индекса оптимального удаленного узла. В этом варианте осуществления, распределенная служба может включать в себя программные модули или другие функциональные возможности для вычисления индексных номеров, используемых для сравнения линий связи, соединяющих узлы. Программные модули могут принимать в качестве входной информации то, что описано здесь ранее, и могут включать в себя программные модули для вычисления индексного номера, основываясь на такой входной информации.
В альтернативном варианте осуществления, способ 300 может включать в себя прием вычисленного индекса оптимального удаленного узла. Например, распределенные службы в сети масштаба предприятия могут включать в себя функциональные возможности для приема индексных номеров от другого агента в сети масштаба предприятия, когда другой агент обеспечивает индексные номера для линий связи, взаимосвязывающих узлы в сети масштаба предприятия.
Способ 300, показанный на фиг.3, дополнительно включает в себя действие по отправлению сообщения клиенту, причем это сообщение задает оптимальный удаленный узел (действие 306). Как показано на фиг.1 и как упоминалось здесь ранее, распределенная служба 120 может доставлять сообщение 128 клиенту 106, причем сообщение 128 обеспечивает информацию, задающую оптимальный удаленный узел. Например, в примере, показанном на фиг.1, сообщение 128 может задавать, что оптимальным удаленным узлом для клиента 106 является узел B 108. В одном из вариантов осуществления, отправление сообщения клиенту (действие 306) может включать в себя отправление сообщения UDP (протокола пользовательских датаграмм).
Обратимся теперь к фиг.4, на которой иллюстрируется пример вычислительной системы 420. Вычислительная система 420 может включать в себя функциональные возможности для выполнения эхо-тестирования в отношении распределенных служб для выявления оптимального удаленного узла и для регистрации в распределенной службе. Хотя распределенные службы могут осуществляться в виде отдельной системы, на фиг.4 они иллюстрируются в составе удаленной вычислительной системы 483. Вычислительная система 420 может включать в себя процессор 421. Процессор 421 сконфигурирован, чтобы оперировать машиноисполняемыми инструкциями. Например, процессор может быть сконфигурирован, чтобы исполнять инструкции, хранимые в базовой системе ввода/вывода (BIOS) 426, в постоянном запоминающем устройстве (ROM, ПЗУ) 424, как часть операционной системы 435 и различных программных модулей, включая прикладные программы 436 и другие программные модули 437. Эти программные модули могут храниться на энергонезависимом постоянном запоминающем устройстве, таком как жесткий диск 439 или на других носителях, где они могут загружаться в системную память 422 для исполнения процессором.
Вычислительная система 420 также включает в себя, как упоминалось выше, носители данных, сконфигурированные, чтобы хранить данные и программные модули. Например, прикладные программы 436 могут храниться на накопителе на жестких дисках 439, где они могут загружаться в запоминающее устройство с произвольной выборкой (RAM, ЗУПВ) 425 системной памяти 422. Аналогично, программные данные 438 могут храниться на накопителе на жестких дисках 459 и в ЗУПВ 425 системной памяти 422.
Носители данных могут включать в себя один или несколько программных модулей 437, сконфигурированных, чтобы выполнять эхо-тестирование в отношении одной или нескольких распределенных служб на одном или нескольких удаленных узлах. Программные модули могут быть дополнительно сконфигурированы, чтобы принимать сообщение от распределенной службы из числа одной или нескольких распределенных служб, где сообщение задает оптимальный удаленный узел. Один или несколько программных модулей могут быть дополнительно сконфигурированы для регистрации в распределенной службе на оптимальном удаленном узле.
В некоторых вариантах осуществления, распределенные службы представлены удаленной вычислительной системой 483, соединенной с вычислительной системой 420 через сетевой интерфейс 453 и сетевое соединение 451. Сетевым соединением 451 может быть любое из различных сетевых соединений, которые существуют в настоящее время или могут существовать в будущем. Современные соединения включают в себя соединения Bluetooth, проводные и беспроводные соединения и различные другие соединения. Однако варианты осуществления не ограничиваются перечисленными здесь сетевыми соединениями, но могут функционировать с другими нераскрытыми здесь соединениями.
В одном из вариантов осуществления, один или несколько программных модулей могут быть дополнительно сконфигурированы, чтобы отправлять указание того, что вычислительная система 420 способна обрабатывать информацию об оптимальном узле. Еще в одном варианте осуществления, программные модули могут быть сконфигурированы, чтобы возвращаться к способу случайного эхо-тестирования для поиска распределенной службы, если не принимается никакого сообщения, указывающего оптимальный удаленный узел.
Варианты осуществления также могут включать в себя машиночитаемые носители для машиноисполняемых инструкций или структур данных, хранимых на них. Такие машиночитаемые носители могут представлять собой любые доступные носители, к которым может осуществлять доступ компьютер общего назначения или специального назначения. Например, такие машиночитаемые носители могут содержать запоминающее устройство с произвольной выборкой (RAM, ЗУПВ), постоянное запоминающее устройство (ROM, ПЗУ), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), постоянное запоминающее устройство на компакт-диске (CD-ROM) или другие оптические запоминающее устройства на дисках, накопители на магнитных дисках или любые другие магнитные запоминающие устройства, либо любые другие носители, которые могут быть использованы для хранения желательного программного кода в форме машиноисполняемых инструкций или структур данных и к которым может осуществить доступ компьютер общего назначения или специального назначения, но не в ограничительном смысле. Когда информация обеспечивается или передается по сети или по другому коммуникационному соединению (либо проводному, либо беспроводному, либо некоторой комбинации проводного и беспроводного) в компьютер, компьютер по существу рассматривает соединение как машиночитаемый носитель. Таким образом, любое соединение может, по существу, трактоваться как машиночитаемый носитель. Комбинации вышеперечисленных сред и носителей также охватываются понятием «машиночитаемый носитель».
Машиночитаемые инструкции содержат, например, инструкции и данные, которые предписывают компьютеру общего назначения, компьютеру специального назначения или устройству обработки специального назначения выполнять некоторую функцию или группу функций. Хотя изобретение было описано здесь на языке, специфическом для структурных признаков и/или методологических действий, следует понимать, что объем изобретения, определяемый формулой изобретения, не обязательно ограничивается описанными выше специфическими признаками или действиями. Скорее, специфические признаки и действия, описанные выше, раскрываются в качестве примеров форм реализации пунктов формулы изобретения.
Настоящее изобретение может осуществляться в других специфических формах, не отклоняясь от его сущности или существенных характеристик. Раскрытые варианты осуществления должны рассматриваться во всех отношениях только как иллюстративные и не ограничивающие. Следовательно, объем изобретения определяется формулой изобретения, а не вышеприведенным описанием. Все изменения, которые находятся в пределах значения и диапазона эквивалентности формулы изобретения, должны охватываться объемом изобретения.