ГЛОБАЛЬНОЕ ПРЕДОСТАВЛЕНИЕ УСЛУГ МИЛЛИОНАМ ПОЛЬЗОВАТЕЛЕЙ С ПОМОЩЬЮ УЗЛОВ РАЗВЕРТЫВАНИЯ
GLOBAL PROVISION OF SERVICES TO MILLIONS OF USERS THROUGH DEPLOYMENT UNITS

Уровень техники
За последние годы Интернет эволюционировал из простого средства публикации информации в наполненную ресурсами мультимедийную среду. Вследствие распространения широкополосной технологии в домах и офисах возникли возможности для предоставления различных типов услуг по Интернету. Некоторые из этих услуг помогают рационализировать глобальные коммерческие операции. Например, один тип технологии позволяет людям, работающим в офисах на противоположных сторонах земного шара, совместно работать в виртуальной офисной среде. Эти службы, в общем, размещаются на одном или более серверах.
По мере того как потребность в этих услугах растет, становится необходимым предоставление большего числа серверов для того, чтобы размещать услуги. Более того, если услуга предоставляется глобально, может быть желательным рассредоточить серверы по различным географическим регионам (к примеру, один сервер в США и один сервер в Азии), чтобы предоставлять большую пропускную способность каждому соответствующему региону. Более того, если регион испытывает особенно значительную нагрузку, также может быть желательным дополнительно подразделить этот регион (к примеру, сервер Западного побережья США, сервер Среднего Запада США и сервер Восточного побережья США).
Таким образом, с серверами, рассредоточенными в различных географических местоположениях, желательно предоставлять услугу таким образом, чтобы каждый пользователь услуги назначался соответствующему серверу с тем, чтобы полоса пропускания и производительность системы могли быть оптимизированы.
Сущность изобретения
Данная сущность предусмотрена для того, чтобы в упрощенной форме представить набор идей, которые дополнительно описываются ниже в подробном описании. Эта сущность не предназначена для того, чтобы идентифицировать ключевые признаки или существенные признаки заявляемого объекта изобретения, а также не предназначена для того, чтобы быть использованной так, чтобы ограничивать объем применения заявляемого объекта изобретения.
В данном документе описывается технология для (помимо прочего) глобального предоставления услуги. Технология включает в себя предоставление посредством нового клиента информации о своем местоположении в сервер предоставления услуг. Информация местоположения может включать в себя, но не только, региональный идентификатор и часовой пояс клиента. Сервер предоставления услуг определяет соответствующий узел развертывания на основе информации местоположения, которому должен быть назначен новый клиент. Сервер предоставления услуг передает информацию назначения для соответствующего узла развертывания новому клиенту. После этого клиент соединяется с возможностью связи к назначенному узлу развертывания и начинает прием услуги от узла развертывания.
В случае если по любой причине желательно, чтобы конкретный клиент был переназначен от текущего узла развертывания новому узлу развертывания, текущий узел развертывания передает информацию необходимости переназначения клиенту. Клиент после приема информации необходимости переназначения проходит вышеописанные шаги, чтобы подготовиться к работе с другим узлом развертывания. После этого клиент соединяется с возможностью связи с новым узлом развертывания, как проинструктировано в информации переназначения.
Таким образом, варианты осуществления предоставляют легко приспосабливаемую технологию для глобального предоставления услуги. Технология допускает интеллектуальное назначение клиентов соответствующим (зачастую ближайшим) узлам развертывания для целей приема услуги. Более того, варианты осуществления предоставляют возможность динамического добавления или удаления узла развертывания посредством переназначения клиентов "на лету". Эта архитектура идеально подходит для поддержки клиентов, исчисляющихся миллионами.
Краткое описание чертежей
Прилагаемые чертежи, которые содержатся и составляют часть данного подробного описания, иллюстрируют варианты осуществления и вместе с описанием служат для того, чтобы пояснять их принципы.
Фиг.1 - это блок-схема, иллюстрирующая систему глобального предоставления услуги в соответствии с вариантом осуществления.
Фиг.2 - это блок-схема, иллюстрирующая систему глобального предоставления услуги в соответствии с примерным вариантом осуществления.
Фиг.3 - это блок-схема последовательности операций способа, иллюстрирующая процесс приема глобального предоставления услуги в клиенте в соответствии с вариантом осуществления.
Фиг.4A - это блок-схема последовательности операций способа, иллюстрирующая процесс глобального предоставления услуги в соответствии с вариантом осуществления.
Фиг.4B - это блок-схема последовательности операций способа, иллюстрирующая процесс определения предпочтительного узла развертывания, которому должен быть назначен новый клиент, в соответствии с вариантом осуществления.
Фиг.4C - это блок-схема последовательности операций способа, иллюстрирующая процесс определения предпочтительного узла развертывания, которому должен быть назначен новый клиент, когда GPD-реплика соединена с устройством, использующим процесс, в соответствии с вариантом осуществления.
Фиг.4D - это блок-схема последовательности операций способа, иллюстрирующая процесс переназначения текущего клиента новому узлу развертывания в соответствии с вариантом осуществления.
Фиг.5 - это схема примера надлежащего окружения вычислительной системы, в котором могут быть реализованы варианты осуществления.
Подробное описание изобретения
Далее приводится подробное описание предпочтительных вариантов осуществления заявляемого предмета изобретения, примеры которых проиллюстрированы на прилагаемых чертежах. Хотя изобретение описано в связи с предпочтительными вариантами осуществления, следует понимать, что они не предназначены для того, чтобы ограничивать заявляемый предмет изобретения этими вариантами осуществления. Наоборот, заявляемый предмет изобретения предназначен для того, чтобы охватывать все альтернативы, модификации и эквиваленты, которые могут быть включены в рамки духа и области применения заявляемого предмета изобретения, заданной в формуле изобретения. Кроме того, в подробном описании настоящего изобретения многие конкретные детали объяснены для того, чтобы обеспечить полное понимание заявляемого предмета изобретения. Тем не менее, специалистам в данной области техники должно быть очевидным, что заявляемый предмет изобретения может быть использован на практике без этих конкретных деталей. В других случаях хорошо известные способы, процедуры, компоненты и схемы не описаны подробно с тем, чтобы не затруднять понимание аспектов заявляемого предмета изобретения.
Некоторые части подробного описания, которое следует ниже, представлены исходя из процедур, логических блоков, обработки и других символических представлений операций с битами данных в компьютере или цифровой системной памяти. Эти описания и представления являются средством, используемым специалистами в области техники обработки данных для того, чтобы наиболее эффективно выражать суть своей работы другим специалистам в этой области техники. Процедура, логический блок, процесс и т.д. в данном документе и вообще считаются самосогласованной последовательностью этапов или инструкций, приводящей к требуемому результату. Этапы - это то, что требует физической обработки физических величин. Обычно, хотя и не обязательно, эти физические обработки принимают форму электрических или магнитных сигналов, допускающих сохранение, передачу, комбинирование, сравнение и иную обработку в вычислительной системе или аналогичном электронном вычислительном устройстве. По причинам удобства и со ссылкой на стандартное использование эти сигналы упоминаются как биты, значения, элементы, символы, знаки, термины, числа и т.п. со ссылкой на заявляемый предмет изобретения.
Тем не менее, следует понимать, что все эти термины должны интерпретироваться как ссылающиеся на физические обработки и величины и являются просто удобными пометками и должны дополнительно интерпретироваться согласно терминам, обычно используемым в данной области техники. Если не заявлено отличное от того, что очевидно из описания в данном документе, необходимо осознавать, что в описании настоящего варианта осуществления пояснения, использующие такие термины, как "определение", или "вывод", или "передача", или "запись", или "нахождение", или "сохранение", или "отображение", или "прием", или "обнаружение", или "использование", или "формирование", или "предоставление", или "осуществление доступа", или "проверка", или "уведомление", или "доставка" и т.п., означают действия и процессы вычислительной системы либо аналогичного вычислительного устройства, которое обрабатывает и преобразует данные. Данные представляются как физические (электронные) величины в регистрах и запоминающих устройствах вычислительной системы и преобразуются в другие данные, аналогично представленные как физические величины в запоминающих устройствах или регистрах вычислительной системы либо в других таких устройствах хранения, передачи или отображения информации.
Вкратце, варианты осуществления влекут за собой получение сервером предоставления услуг информации местоположения клиента. Сервер предоставления услуг определяет соответствующий узел развертывания на основе информации местоположения, которому должен быть назначен клиент. Сервер предоставления услуг передает информацию назначения для соответствующего узла развертывания клиенту. После этого клиент подключается с возможностью связи к назначенному узлу развертывания и начинает прием услуги от узла развертывания.
Фиг.1 иллюстрирует систему 100 глобального предоставления услуги в соответствии с вариантом осуществления. Хотя фиг.1 иллюстрирует аппаратную систему, следует принимать во внимание, что варианты осуществления, описанные в данном документе, хорошо подходят для реализации в программном обеспечении, при этом функции компонентов на фиг.1 выполняются посредством эквивалентных программных модулей на отдельных аппаратных системах.
1
N
1
N
Услугой, предоставляемой посредством системы 100, может быть любая услуга, которая оптимально подходит для глобального предоставления услуг. В одном варианте осуществления службой является служба виртуального офиса. Система 100 включает в себя узлы DU-DU развертывания. В своей самой базовой форме узлы DU-DUразвертывания предоставляют службу клиентам (например, клиенту 110). Система 100 также включает в себя сервер 120 предоставления услуг. Следует принимать во внимание, что хотя только один сервер предоставления услуг проиллюстрирован на фиг.1, система 100 оптимально подходит для того, чтобы содержать несколько серверов предоставления услуг в различных географических местах с тем, чтобы надлежащим образом управлять клиентской нагрузкой.
В одном варианте осуществления, когда отдельный пользователь готов создать учетную запись для услуги, клиент 110 сначала подключается к серверу 120. В этой точке сервер 120 предоставления услуг должен получать информацию местоположения клиента. В одном варианте осуществления информация местоположения получается из инфраструктуры глобальной сетевой маршрутизации. В другом варианте осуществления клиент 110 передает свою информацию местоположения в сервер 120 предоставления услуг. В еще одном другом варианте осуществления используется комбинация отправленной клиентом информации местоположения и информации местоположения, полученной из инфраструктуры глобальной сетевой маршрутизации. Информация местоположения может включать в себя, но не только, географический идентификатор, такой как идентификатор страны, и часовой пояс клиента. Информация местоположения также может включать в себя идентификатор учетной записи, сертификат учетной записи, тип лицензии и идентификатор транзакции.
Система 100 также включает в себя службу 140 глобального предоставления услуги, которая соединена с возможностью связи с серверами предоставления услуг, например, сервером 120 предоставления услуг, и рядом баз данных. При приеме информации местоположения от клиента 110 сервер предоставления услуг контактирует со службой 140 глобального предоставления услуг, которая, в свою очередь, предоставляет информацию назначения клиенту 110. Например, если географический идентификатор клиента соответствует США, а часовой пояс клиента - это тихоокеанское время, служба 140 глобального предоставления услуг назначает клиента узлу развертывания на Восточном побережье США. В одном варианте осуществления каждый узел развертывания может поддерживать только определенные типы лицензий. Например, узел развертывания Восточного побережья США может поддерживать типы лицензий A и B, тогда как узел развертывания Западного побережья США поддерживает только лицензии типа A. Таким образом, если клиент из предыдущего примера имеет лицензию типа B, служба глобального предоставления услуг должна назначить клиента узлу развертывания Восточного побережья США, поскольку узел развертывания Западного побережья не поддерживает клиентскую лицензию. Информация назначения, предоставляемая посредством сервера 140 глобального предоставления услуг, может включать в себя, но не только, URL-адрес, соответствующий назначенному узлу развертывания, сертификат, соответствующий назначенному узлу развертывания, маркер авторизации и хэш-код.
1
N
В одном варианте осуществления базы данных, к которым подсоединяется служба глобального предоставления услуг, включают в себя каталог глобального предоставления услуг (GPD) 150, который размещает информацию по узлам DU-DU развертывания. Эта информация может включать в себя, но не только, имена и местоположения узлов развертывания, URL-адреса и сертификаты, соответствующие узлам развертывания, информацию пропускной способности по пользователям узлов развертывания, типы лицензий, поддерживаемые посредством узлов развертывания, и т.п.
1
1
После того как сервер 120 предоставления услуг принимает информацию назначения от службы 140 глобального предоставления услуг, он, в свою очередь, перенаправляет информацию назначения обратно клиенту 110. В ответ клиент 110 затем с возможностью связи соединяется с узлом развертывания, указанным в информации назначения (к примеру, DU). После того как клиент 110 соединяется с соответствующим узлом развертывания (к примеру, DU), он затем может начать прием услуги от этого узла развертывания.
1
В одном варианте осуществления базы данных, с которыми соединяется служба глобального предоставления услуг, включают в себя глобальный каталог 160 контактов, который размещает контактную информацию для пользователей системы 100. В одном варианте осуществления глобальный каталог контактов является признаком по запросу. Таким образом, пользователи (к примеру, клиент 110) могут выбрать опубликовать определенную контактную информацию в глобальном каталоге 160 контактов. Контактная информация, сохраненная в глобальном каталоге 160 контактов, может включать в себя, но не только, имена, адреса электронной почты, виртуальные визитные карточки, номера телефонов и т.д. Поскольку публикация в глобальном каталоге контактов может быть необязательной, публикация может выполняться в любое время. Например, клиент 110 может опубликовать свою контактную информацию через сервер 120 предоставления услуг, когда он запрашивает информацию назначения. Альтернативно, клиент 110 может публиковать свою контактную информацию через соответствующий узел развертывания (к примеру, DU) после того, как он принял свое назначение узла развертывания.
В одном варианте осуществления система 100 включает в себя GPD-реплику 170, соединенную с возможностью связи с сервером 120 предоставления услуг. Идеально GPD-реплика 170 размещается рядом с сервером 120 предоставления услуг. Преимущество наличия GPD-реплики 170 заключается в том, что сервер 120 предоставления услуг может принимать решение о предоставлении услуг на основе информации в GPD-реплике 170, а не получения информации назначения от службы 140 глобального предоставления услуг. Это уменьшает интервал времени, требуемый для того, чтобы предоставить услугу клиенту, и снижает использование полосы пропускания службы 140 глобального предоставления услуг. Если каждый сервер предоставления услуг в системе 100 (такой как сервер 120 предоставления услуг) соединен с соответствующей GPD-репликой (такой как GPD-реплика 170), служба 140 глобального предоставления услуг в таком случае должна заниматься только управлением модификациями и запросами в глобальный каталог контактов и периодической синхронизацией GPD-реплик (таких как GPD-реплика 170) с исходным GPD 150.
N+1
N+2
По мере того как число клиентов, осуществляющих доступ к услуге в конкретном регионе (к примеру, США), возрастает, может быть необходимо добавить один или более узлов развертывания (к примеру, DU, DU и т.д., не показаны) в систему 100. Например, если США в настоящее время имеют узел развертывания Западного побережья и Восточного побережья, оба из которых достигают своих пределов по пропускной способности, система 100 в таком случае должна предоставить динамическое добавление, к примеру, узла развертывания Среднего Запада. После того как новый узел развертывания находится на месте и функционирует, желательно переназначить некоторых клиентов новому узлу развертывания, чтобы распределять нагрузку более равномерно. Повторное предоставление услуг клиентам на других узлах развертывания также может быть желательным в других ситуациях, таких как переназначение клиента, если он переместился из одного региона в другой, или перемещение конкретного класса пользователей (к примеру, бета-пользователей) на конкретный узел развертывания (к примеру, для специализированного бета-тестирования). Если имеются специальные узлы развертывания для тех клиентов, которые должны быть перемещены, узел развертывания помечает в глобальной базе данных этих клиентов. В этих случаях узлы развертывания должны передавать информацию необходимости переназначения клиентам. После приема информации необходимости переназначения клиенты проходят те же этапы предоставления услуг посредством контактирования с сервером предоставления услуг. Если клиент переместился вследствие изменения местоположения, ему в таком случае назначается другой узел развертывания, ближе к нему. Если соответствующая запись в глобальной базе данных помечена, клиент назначается заранее назначенному узлу развертывания. Переназначенные клиенты затем переподключаются к соответствующему узлу развертывания. Следует принимать во внимание, что аналогичные функции могут быть использованы в случае, если узел развертывания удален из системы 100.
Фиг.2 иллюстрирует систему 200 глобального предоставления услуги в соответствии с вариантом осуществления. Хотя фиг.1 иллюстрирует аппаратную систему, следует принимать во внимание, что варианты осуществления, описанные в данном документе, хорошо подходят для реализации в программном обеспечении, при этом функции компонентов на фиг.1 выполняются посредством эквивалентных программных модулей.
1
N
1
N
1
N
В системе 200 серверы 220-220 предоставления услуг и GPD-реплики 270-270 интегрированы с соответствующими узлами DU' и DU' развертывания. Более того, служба 240 глобального предоставления услуг, GPD 250 и глобальный каталог 260 контактов интегрированы в глобальный центр 230 данных. Функционально система 200 работает аналогично системе 100.
1
1
1
1
В одном варианте осуществления, когда отдельный пользователь готов создать учетную запись для услуги, клиент 210 сначала подключается к серверу предоставления услуг (к примеру, 220), который интегрирован в соответствующий узел развертывания (к примеру, DU'). В одном варианте осуществления серверы предоставления услуг имеют широко известное имя или псевдоним (к примеру, provision.groove.microsoft.com), которые встроены в клиент 210. Сервер предоставления услуг (к примеру, 220) должен получить информацию местоположения клиента. В одном варианте осуществления информация местоположения получается из инфраструктуры глобальной сетевой маршрутизации. В другом варианте осуществления клиент 210 передает свою информацию местоположения в сервер предоставления услуг (к примеру, 220). В еще одном другом варианте осуществления используется комбинация отправленной клиентом информации местоположения и информации местоположения, полученной из инфраструктуры глобальной сетевой маршрутизации. Информация местоположения может включать в себя, но не только, географический идентификатор, такой как идентификатор страны, и часовой пояс клиента. Информация местоположения также может включать в себя идентификатор учетной записи, сертификат учетной записи, тип лицензии и идентификатор транзакции.
1
N
При приеме информации местоположения от клиента 210 сервер предоставления услуг (к примеру, 220) контактирует со службой 240 глобального предоставления услуг, которая интегрирована в глобальный центр 230 данных. Служба 240 глобального предоставления услуг, в свою очередь, предоставляет информацию назначения клиенту 210. Информация назначения, предоставляемая посредством сервера 240 глобального предоставления услуг, может включать в себя, но не только, URL-адрес, соответствующий назначенному узлу развертывания (к примеру, DU'), сертификат, соответствующий назначенному узлу развертывания, маркер авторизации и хэш-код.
1
N
В одном варианте осуществления GPD 250, интегрированный в глобальный центр 230 данных, размещает информацию об узлах DU'-DU' развертывания. Эта информация может включать в себя, но не только, имена и местоположения узлов развертывания, URL-адреса и сертификаты, соответствующие узлам развертывания, информацию пропускной способности по пользователям узлов развертывания, типы лицензий, поддерживаемые посредством узлов развертывания, и т.п.
1
N
N
N
1
После того как сервер предоставления услуг (к примеру, 220) принимает информацию назначения от службы 240 глобального предоставления услуг, он, в свою очередь, перенаправляет информацию назначения обратно клиенту 210. В ответ клиент 210 затем с возможностью связи соединяется с узлом развертывания, указанным в информации назначения (к примеру, DU'). После того как клиент 210 соединяется с соответствующим узлом развертывания (к примеру, DU'), он затем может начать прием услуги от этого узла развертывания. Как показано, в системе 200 вполне возможно, чтобы узлом развертывания, которому назначен клиент 210 (к примеру, DU'), являлся узел развертывания, отличный от того, от которого первоначально принята информация назначения (к примеру, DU').
1
N
В одном варианте осуществления глобальный каталог 260 контактов, интегрированный в глобальный центр 230 данных, размещает контактную информацию для пользователей системы 200. В одном варианте осуществления глобальный каталог контактов является признаком по запросу. Таким образом, пользователи (к примеру, клиент 210) могут выбрать опубликовать определенную контактную информацию в глобальный каталог 260 контактов. Контактная информация, сохраненная в глобальном каталоге 260 контактов, может включать в себя, но не только, имена, адреса электронной почты, виртуальные визитные карточки, номера телефонов и т.д. Поскольку публикация в глобальном каталоге контактов может быть необязательной, публикация может выполняться в любое время. Например, клиент 210 может опубликовать свою контактную информацию через первоначальный узел развертывания (к примеру, DU'), когда он запрашивает информацию назначения. Альтернативно, клиент 210 может публиковать свою контактную информацию через свой назначенный узел развертывания (к примеру, DU') после того, как он принял свое назначение узла развертывания.
1
N
1
N
1
N
1
N
1
N
1
N
1
N
GPD-реплики 270-270, интегрированные в соответствующие узлы DU'-DU' развертывания, позволяют их соответствующим серверам 220-220 предоставления услуг принимать решения о предоставлении услуг самим на основе информации в GPD-репликах 270-270 вместо получения информации назначения от службы 240 глобального предоставления услуг. Это уменьшает интервал времени, требуемый для того, чтобы предоставлять услугу клиенту, и уменьшает использование полосы пропускания службы 240 глобального предоставления услуг. Посредством включения GPD-реплик 270-270 в узлы DU'-DU' развертывания нагрузка по обработке службы 240 глобального предоставления услуг значительно снижается. По сути служба 240 глобального предоставления услуг в таком случае должна заниматься только управлением модификациями и запросами в глобальный каталог 260 контактов и периодической синхронизацией GPD-реплик 270-270 с исходным GPD 250.
В одном варианте осуществления система 200 допускает повторное предоставление услуг клиенту (такому как клиент 210). Сценарии, в которых повторное предоставление услуг пользователю может быть желательным или необходимым, включают в себя, но не только, переназначение пользователей после добавления или удаления узла развертывания из системы 200, переназначение клиента, если он переместился из одного региона в другой, или перемещение конкретного класса пользователей (к примеру, бета-пользователей) на конкретный узел развертывания (к примеру, для выделенного бета-тестирования). В этих случаях узлы развертывания должны получать новую информацию назначения для клиентов, которым должны быть повторно предоставлены услуги, и затем передавать новую информацию назначения в клиенты. Переназначенные клиенты затем переподключаются к соответствующему узлу развертывания.
Фиг.3 иллюстрирует процесс 300 приема глобального предоставления услуги в клиенте в соответствии с вариантом осуществления. Следует принимать во внимание, что некоторые варианты осуществления могут не использовать все этапы, проиллюстрированные на фиг.3. Дополнительно следует принимать во внимание, что некоторые варианты осуществления могут включать в себя дополнительные этапы, не проиллюстрированные на фиг.3. Этапы процесса 300 могут быть сохранены как инструкции на машиночитаемом носителе и приведены в исполнение в процессоре компьютера.
Этап 310 процесса 300 влечет за собой передачу информации местоположения в сервер предоставления услуг. Информация местоположения может включать в себя, но не только, географический идентификатор, такой как идентификатор страны, и часовой пояс клиента. Информация местоположения также может включать в себя идентификатор учетной записи, сертификат учетной записи, тип лицензии и идентификатор транзакции.
Этап 320 влечет за собой прием информации назначения от сервера предоставления услуг. Информация назначения назначает клиента конкретному узлу развертывания. Информация назначения, по меньшей мере, частично основана на информации местоположения и может включать в себя, но не только, URL-адрес, соответствующий назначенному узлу развертывания, сертификат, соответствующий назначенному узлу развертывания, маркер авторизации и хэш-код. На этапе 330 клиент соединяется с возможностью связи к назначенному узлу развертывания. На этапе 340 клиент аутентифицируется в узле развертывания. Этап аутентификации может включать в себя, но не только, передачу идентификатора учетной записи, сертификата учетной записи, идентификатора транзакции, маркера аутентификации и URL-адреса, соответствующего серверу предоставления услуг, в узел развертывания для проверки. После того как клиент аутентифицирован, он может начинать прием услуги (этап 350) и периодических обновлений (этап 360) от узла развертывания.
Этапы 315 и 345 влекут за собой передачу контактной информации клиентов для включения в глобальный каталог контактов. Эти два этапа иллюстрируют то, что контактная информация может предоставляться в различных точках процесса 300. Более того, следует принимать во внимание, что контактная информация может предоставляться в других точках процесса 300, не показанных на фиг.3. В одном варианте осуществления публикация контактной информации в глобальном каталоге контактов является признаком по запросу на основе каждого клиента.
Как указано выше, могут возникать определенные ситуации, когда становится необходимым переназначить конкретного клиента другому узлу развертывания. Информация переназначения, если имеется, включается в обновление, принимаемое посредством клиента, на этапе 360. На этапе 370 процесс 300 определяет, содержит ли обновление информацию необходимости переназначения. Если нет, процесс 300 продолжает обычную работу и возвращается к этапу 350. Если обновление не содержит информацию необходимости переназначения, процесс 300 возвращается к этапу 310, на котором клиент 110 проходит те же этапы представления услуг, чтобы получить назначение и соединиться с возможностью связи с новым узлом развертывания.
Фиг.4A иллюстрирует процесс 400 глобального предоставления услуги в соответствии с вариантом осуществления. Следует принимать во внимание, что некоторые варианты осуществления могут не использовать все этапы, проиллюстрированные на фиг.4A. Дополнительно следует принимать во внимание, что некоторые варианты осуществления могут включать в себя дополнительные этапы, не показанные на фиг.4A. Этапы процесса 400 могут быть сохранены как инструкции на машиночитаемом носителе и приведены в исполнение в процессоре компьютера.
Процесс 400 начинается на этапе 410 посредством получения информации местоположения для клиента. Информация местоположения может быть получена рядом способов, к примеру, непосредственно от клиента, через инфраструктуру глобальной сетевой маршрутизации, комбинацию двух этих вариантов и т.д. Информация местоположения может включать в себя, но не только, географический идентификатор, такой как идентификатор страны, и часовой пояс клиента. Информация местоположения также может включать в себя идентификатор учетной записи, сертификат учетной записи, тип лицензии и идентификатор транзакции.
На этапе 420 предпочтительный узел развертывания, которому должен быть назначен клиент, определяется. Этап 420 может быть осуществлен множеством способов. Фиг.4B иллюстрирует процесс 430 определения предпочтительного узла развертывания, которому должен быть назначен клиент, в соответствии с вариантом осуществления. На этапе 431 процесса 430 информация местоположения клиента передается в глобальный центр данных. На этапе 432 информация назначения принимается от глобального центра данных. Информация назначения назначает клиента конкретному узлу развертывания. Информация назначения, по меньшей мере, частично основана на информации местоположения и может включать в себя, но не только, URL-адрес, соответствующий назначенному узлу развертывания, сертификат, соответствующий назначенному узлу развертывания, маркер авторизации и хэш-код. Фиг.4C иллюстрирует процесс 440 определения предпочтительного узла развертывания, которому должен быть назначен клиент, когда GPD-реплика соединена с устройством, использующим процесс 440, в соответствии с вариантом осуществления. На этапе 441 информация назначения получается от GPD-реплики.
От этапа 420 процесс 400 далее переходит к этапу 450, где информация назначения подписывается с помощью ключа шифрования. Информация назначения после этого передается клиенту (этап 460).
В одном варианте осуществления устройство, использующее процесс 400, само может быть узлом развертывания и тем самым предоставлять услугу другим текущим клиентам. Как указано выше, могут возникать определенные ситуации, когда становится необходимым переназначить текущего клиента другому узлу развертывания. Фиг.4D иллюстрирует процесс 470 переназначения текущего клиента новому узлу развертывания в соответствии с вариантом осуществления. Следует принимать во внимание, что некоторые варианты осуществления могут не использовать все этапы, проиллюстрированные на фиг.4D. Дополнительно следует принимать во внимание, что некоторые варианты осуществления могут включать в себя дополнительные этапы, не показанные на фиг.4D. Этапы процесса 470 могут быть сохранены как инструкции на машиночитаемом носителе и приведены в исполнение в процессоре компьютера.
На этапе 471 выполняется определение того, должен ли текущий клиент быть переназначен новому узлу развертывания. Это определение может быть полностью внутренним для текущего узла развертывания (к примеру, узел развертывания достиг максимальной пропускной способности) либо оно может быть результатом внешних переменных (к примеру, инструкции, принятой из глобального центра данных, требующей, чтобы текущий клиент был переназначен). Если текущий клиент необязательно должен быть переназначен, текущий узел развертывания продолжает обычную работу относительно текущего клиента и предоставляет услугу (этап 472) и периодические обновления (этап 473) текущему клиенту. Если текущий клиент не должен быть переназначен, процесс 470 переходит к этапу 474, на котором глобальный центр данных помечается для текущего клиента, если новый узел развертывания уже известен. На этапе 475 информация необходимости переназначения предоставляется текущему клиенту, фактически инструктируя пройти те же этапы представления услуг, чтобы стать назначенным новому узлу развертывания. Информация назначения может предоставляться текущему клиенту рядом способов. Например, информация назначения может предоставляться текущему клиенту в обновлении, аналогичном передаваемому клиенту на этапе 473.
Фиг.5 иллюстрирует пример подходящего окружения 500 вычислительной системы, в котором могут быть реализованы варианты осуществления. Окружение 500 является только одним примером подходящего вычислительного окружения и не предназначено, чтобы накладывать какое-либо ограничение на область применения или функциональность изобретения. Также вычислительное окружение 500 не должно быть интерпретировано как имеющее какую бы то ни было зависимость или требование, относящееся к любому одному или комбинации компонентов, проиллюстрированных в примерном операционном окружении 500.
Со ссылкой на фиг.5, примерная система для реализации вариантов осуществления включает в себя окружение вычислительной системы общего назначения, такое как окружение 500 вычислительной системы. В самой базовой конфигурации окружение 500 вычислительной системы в типичном варианте включает в себя, по меньшей мере, один процессор 502 и память 504. В зависимости от точной конфигурации и типа окружения вычислительной системы память 504 может быть энергозависимой (например, RAM), энергонезависимой (например, ROM, флэш-память и т.д.) либо некоторой комбинацией двух этих вариантов. Эта самая базовая конфигурация проиллюстрирована на фиг.5 посредством пунктирной линии 505. Дополнительно, окружение 500 вычислительной системы также может иметь дополнительные признаки/функциональность. Например, окружение 500 вычислительной системы также может включать в себя дополнительное устройство хранения (съемное и/или стационарное), в том числе, но не только, магнитные или оптические диски либо ленты. Эти дополнительные устройства хранения проиллюстрированы на фиг.5 посредством съемного устройства 508 хранения и стационарного устройства 510 хранения. Компьютерные носители хранения могут включать в себя энергозависимые и энергонезависимые, съемные и стационарные носители, реализованные любым способом или технологией хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Память 504, съемное устройство 508 хранения и стационарное устройство 510 хранения являются примерами компьютерных носителей хранения. Компьютерные носители хранения включают в себя (но не только) RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другие оптические устройства хранения, магнитные кассеты, магнитные ленты, устройства хранения на магнитных дисках или другие магнитные устройства хранения, либо любой другой носитель, который может быть использован для того, чтобы сохранять нужную информацию, и доступ к которому может осуществляться посредством окружения 500 вычислительной системы. Любые такие компьютерные носители хранения могут быть частью окружения 500 вычислительной системы.
Окружение 500 вычислительной системы также может содержать подключение(я) 512 связи, которые позволяют ему обмениваться данными с другими устройствами. Подключение(я) 512 связи являются примером среды связи. Среда связи в типичном варианте содержит машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущее колебание или другой механизм распространения, и включает в себя любой носитель для доставки информации. Термин "модулированный сигнал данных" означает сигнал, который имеет одну или более из его характеристик, установленных или изменяемых таким образом, чтобы кодировать информацию в сигнале. Для примера, но не в качестве ограничения, среда связи включает в себя проводную среду, такую как проводная сеть или непосредственное проводное соединение, и беспроводную среду, такую как акустическая среда, радиочастота, инфракрасное излучение и другая беспроводная среда. Термин "машиночитаемые носители" при использовании в данном документе включает в себя как носители хранения, так и среду связи. Окружение 500 вычислительной системы также может иметь устройства 514 ввода, такие как клавиатура, мышь, перо, устройство речевого ввода, устройство сенсорного ввода и т.д. Устройства 120 вывода, такие как дисплей, громкоговорители, принтер и т.д., также могут быть включены в окружение. Все эти устройства широко распространены в данной области техники и не обязательно должны подробно описываться в данном документе.
Таким образом, варианты осуществления предоставляют легко приспосабливаемую технологию для глобального предоставления услуги. Технология допускает интеллектуальное назначение клиентов соответствующим (зачастую ближайшим) узлам развертывания для целей приема услуги. Более того, варианты осуществления предоставляют возможность динамического добавления или удаления узла развертывания посредством переназначения клиентов "на лету". Эта архитектура идеально подходит для поддержки клиентов, исчисляющихся миллионами.
Предшествующее описание раскрытых вариантов осуществления предоставлено для того, чтобы дать возможность любому специалисту в данной области техники создавать или использовать заявляемый объект изобретения. Различные модификации в этих вариантах осуществления должны быть очевидными для специалистов в данной области техники, а описанные в данном документе общие принципы могут быть применены к другим вариантам осуществления без отступления от сущности и объема заявляемого объекта изобретения. Таким образом, заявляемый объект изобретения не предназначен для того, чтобы быть ограниченным показанными в данном документе вариантами осуществления, а должен удовлетворять самому широкому объему, согласованному с принципами и новыми признаками, раскрытыми в данном документе.