Управление сеансом удаленного просмотра
Иллюстрации
Показать всеИзобретение относится к удаленному просмотру и направлено на генерацию и управление возобновляемым контекстом удаленного просмотра на провайдере распределенных вычислений. Технический результат - возможность продолжения пользователем сессии просмотра, начатой на первом клиентском вычислительном устройстве, открывая программное приложение браузера на другом клиентском вычислительном устройстве. Для этого клиентское вычислительное устройство запрашивает удаленный экземпляр возобновляемого контекста просмотра на провайдере распределенных вычислений. Провайдер распределенных вычислений предоставляет результаты обработки, соответствующие обработанным представлениям запрашиваемого контента, на клиентское вычислительное устройство. Возобновляемый контекст просмотра может быть сохранен провайдером распределенных вычислений после того, как пользователь заканчивает свое взаимодействие с приложением браузера на клиентском устройстве. Клиентское вычислительное устройство может впоследствии запросить доступ к возобновляемому контексту просмотра, сохраненному на устройстве распределенных вычислений и хранения данных. 3 н. и 19 з.п. ф-лы, 17 ил.
Реферат
УРОВЕНЬ ТЕХНИКИ
[1] Как правило, вычислительные устройства и коммуникационные сети могут быть использованы для обмена информацией. При обычном применении, вычислительное устройство может запросить контент у другого вычислительного устройства по коммуникационной сети. Например, пользователь персонального вычислительного устройства может использовать программное приложение браузера, обычно называемое браузером, чтобы запросить веб-страницу на серверном вычислительном устройстве через Интернет. В таких вариантах воплощения пользовательское вычислительное устройство может упоминаться как клиентское вычислительное устройство, а серверное вычислительное устройство может упоминаться как контент-провайдер. Обычно пользователь может запросить, получить и взаимодействовать с некоторым количеством запрашиваемых веб-страниц или другим контентом одновременно или последовательно с помощью программного приложения браузера.
[2] Согласно иллюстративному примеру, в ходе сессии просмотра вебстраниц на клиентском вычислительном устройстве пользователь может запросить одну или более веб-страниц или другой контент от контент-провайдера через Интернет или из локального источника. В одном конкретном варианте воплощения каждая веб-страница или часть контента может быть визуально представлена, как отображаемая в одном или более окон или вкладок в программном приложении браузера. В качестве иллюстрации, пользователь может взаимодействовать с одной или более веб-страниц или другим контентом. Например, пользователь может ввести данные в форму на веб-странице или изменить атрибут веб-страницы или части контента. Пользователь может дополнительно открыть или закрыть вкладки или окна в программном приложении браузера, перейти по ссылкам или иным образом запросить дополнительные веб-страницы или контент или выполнить любое количество других действий, которые могут изменить внутреннее состояние или представление браузера, одну или более веб-страниц или другой контент во время сессии просмотра. Отображаемый контент, состояние контента и состояние браузера на определенный момент времени в течение сеанса просмотра можно рассматривать как контекст просмотра.
[3] Как правило, выход из программного приложения браузера может завершить сессию просмотра, и, соответственно, контекст просмотра, связанный с сессией просмотра, может быть потерян. Например, закрытие браузера с несколькими открытыми вкладками, соответствующими веб-страницам, а затем повторное открытие нового экземпляра программного приложения браузера может привести к тому, что в новом экземпляре будет загружена веб-страница по умолчанию, или будут отправлены новые запросы для веб-страниц, соответствующих открытым вкладкам исходного браузера. Соответственно, любые пользовательские взаимодействия или изменения, внесенные в состояние веб-страниц, отображаемых в исходном браузере, не будут отображаться в новом экземпляре браузера. Более того, пользователь, открывая программное приложение браузера на другом клиентском вычислительном устройстве, может не иметь возможности продолжить сессию просмотра, начатую на первом клиентском вычислительном устройстве.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[4] Вышеизложенные аспекты и многие из сопутствующих преимуществ этого изобретения будет легче оценить, когда они станут более понятны благодаря последующему подробному описанию, приведенному в сочетании с прилагаемыми чертежами, на которых:
[5] На ФИГ.1 представлена блок-схема, иллюстрирующая среду доставки контента, включающую нескольких клиентских вычислительных устройств, контент-провайдера, сервис-провайдера сети доставки контента, а также провайдера распределенных вычислений;
[6] На ФИГ.2 показана блок-схема среды доставки контента по ФИГ.1, иллюстрирующая генерацию и обработку нового запроса сеанса просмотра от клиентского вычислительного устройства провайдеру распределенных вычислений;
[7] На ФИГ.3 показана блок-схема среды доставки контента по ФИГ.1, иллюстрирующая генерацию и обработку запроса о предоставлении сетевого ресурса от провайдера распределенных вычислений контент-провайдеру;
[8] На ФИГ.4 показана блок-схема среды доставки контента по ФИГ.1, иллюстрирующая генерацию и обработку одного или более запросов, соответствующих одному или более встроенным ресурсам, от провайдера распределенных вычислений контент-провайдеру и в сеть доставки контента;
[9] На ФИГ.5 показана блок-схема среды доставки контента по ФИГ.1, иллюстрирующая генерацию и обработку данных сеанса просмотра и данных пользовательского взаимодействия между провайдером распределенных вычислений и клиентским вычислительным устройством;
[10] На ФИГ.6 показана блок-схема среды доставки контента по ФИГ.1, иллюстрирующая генерацию и обработку дополнительного запроса нового сеанса просмотра от клиентского вычислительного устройства провайдеру распределенных вычислений;
[11] ФИГ.7 представляет собой схему пользовательского интерфейса, иллюстративно изображающую интерфейс браузера и отображение сеанса просмотра контента;
[12] ФИГ.8 представляет собой схему, иллюстративно изображающую действия по обработке контента браузера в виде последовательности подсистем обработки;
[13] На ФИГ.9 показана иллюстративная блок-схема алгоритма нового сеанса просмотра, реализуемого провайдером распределенных вычислений;
[14] На ФИГ.10 представлена иллюстративная блок-схема алгоритма взаимодействия с клиентом в новом сеансе просмотра, реализуемого клиентским вычислительным устройством; и
[15] На ФИГ.11 представлена иллюстративная блок-схема алгоритма способа пользовательского взаимодействия, реализуемого клиентским вычислительным устройством.
[16] На ФИГ.12 показана блок-схема среды доставки контента по ФИГ.1, иллюстрирующая генерацию и обработку запроса нового возобновляемого контекста просмотра от клиентского вычислительного устройства провайдеру распределенных вычислений;
[17] На ФИГ.13 показана блок-схема среды доставки контента по ФИГ.1, иллюстрирующая генерацию и обработку запроса для осуществления доступа к имеющемуся возобновляемому контексту просмотра от клиентского вычислительного устройства провайдеру распределенных вычислений;
[18] На ФИГ.14 показана блок-схема среды доставки контента по ФИГ.1, иллюстрирующая генерацию и обработку дополнительного запроса нового возобновляемого контекста просмотра от клиентского вычислительного устройства провайдеру распределенных вычислений;
[19] На ФИГ.15 показана схема пользовательского интерфейса, иллюстративно изображающая интерфейс выбора контекста просмотра;
[20] ФИГ.16 представляет собой иллюстративную блок-схему алгоритма возобновляемого просмотра клиента, реализуемого клиентским вычислительным устройством; и
[21] ФИГ.17 представляет собой иллюстративную блок-схему алгоритма возобновляемого удаленного просмотра, реализуемого провайдером распределенных вычислений.
ПОДРОБНОЕ ОПИСАНИЕ
[22] Описанное для общего случая, настоящее раскрытие представляет генерацию и управление удаленным сеансом приложения между клиентскими вычислительными устройствами и контент-провайдерами во взаимосвязи с провайдером распределенных вычислений. В частности, аспекты изобретения будут описаны в отношении запроса нового возобновляемого контекста просмотра клиентским вычислительным устройством с контент-провайдером. Кроме того, аспекты изобретения будут описаны в отношении создания возобновляемого контекста удаленного просмотра провайдером распределенных вычислений. Более того, аспекты изобретения будут описаны в отношении передачи данных состояния браузера и клиента и данных взаимодействия клиента между клиентским вычислительным устройством и провайдером распределенных вычислений. Хотя в аспектах вариантов воплощения, описанных в раскрытии, основное внимание будет уделено, с целью иллюстрации, управлению возобновляемым контекстом просмотра, относящемуся к программному приложению браузера, специалисту в данной области техники будет очевидно, что способы, раскрытые здесь, могут быть применены ко многим программным процессам или приложениям. Кроме того, для настоящего изобретения не требуется комбинация любых из описанных аспектов. Кроме того, хотя различные аспекты раскрытия будут описаны в отношении иллюстративных примеров и вариантов воплощения, специалистам в данной области техники будет понятно, что раскрытые варианты воплощения и примеры не должны быть истолкованы как ограничивающие.
[23] Согласно иллюстративному примеру, пользователь может инициировать загрузку клиентским вычислительным устройством программного приложения браузера (далее упоминаемого как "браузер") для осуществления доступа к контенту, представляемому одним или более контент-провайдеров. В качестве иллюстрации, контент, к которому осуществляется доступ, может включать совокупность одного или более сетевых ресурсов (например, веб-страниц) и встроенных ресурсов, таких как изображения, видео, аудио, текст, исполняемый код и другие ресурсы. В одном варианте воплощения браузер может иметь область отображения контента или панель для отображения доступного сетевого контента в дополнение к одному или более локальным компонентам интерфейса, таким как панели инструментов, меню, кнопки или другие элементы управления пользовательским интерфейсом. Локальные компоненты интерфейса могут управляться с помощью программного приложения браузера или любого другого способа, выполняемого или осуществляемого локально на клиентском вычислительном устройстве. В качестве иллюстрации, локальные элементы управления пользовательским интерфейсом могут позволить легко управлять пользовательским интерфейсом, поскольку пользовательское взаимодействие локально обрабатывается на клиентском вычислительном устройстве.
[24] По окончании загрузки браузера, в одном варианте воплощения, клиентское вычислительное устройство может обмениваться информацией о рабочей среде возобновляемого контекста просмотра с провайдером распределенных вычислений, определяющим или идентифицирующим один или более параметров возобновляемого контекста просмотра или другую дополнительную информацию (например, закладки, историю браузера и т.д.), которая будет связана с возобновляемым контекстом просмотра. В дополнительном варианте воплощения информация о рабочей среде возобновляемого контекста просмотра может включать информацию, идентифицирующую один или более существующих возобновляемых контекстов просмотра на провайдере распределенных вычислений, которая может быть доступна для клиентского вычислительного устройства. После, до или одновременно с обменом информацией о рабочей среде возобновляемого контекста просмотра клиентское вычислительное устройство может предоставлять новый запрос о возобновляемом контексте просмотра провайдеру распределенных вычислений. Адрес или местоположение провайдера распределенных вычислений, способного обслуживать запрос о возобновляемом контексте просмотра, может быть жестко закодирован в браузере, может быть настроен пользователем, может быть получен от службы сетевых адресов или может быть определен любым другим способом.
[25] В иллюстративном варианте воплощения провайдер распределенных вычислений, реагирующий на запрос о возобновляемом контексте просмотра, полученный от клиентского вычислительного устройства, может создать экземпляр или инициировать создание экземпляра одного или более вычислительных компонентов, связанных с провайдером распределенных вычислений, на которых будет размещаться программное приложение браузера. Например, провайдер распределенных вычислений может создать экземпляр или инициировать создание экземпляра виртуальной машины, который включает программное приложение браузера, способное поддерживать возобновляемый контекст просмотра. В другом примере, провайдер распределенных вычислений может создать экземпляр или определить хранилище данных для хранения данных, соответствующих различному контенту, состояниям контента и состояниям браузера, содержащим возобновляемый контекст просмотра.
[26] В качестве иллюстрации, клиентское вычислительное устройство может предоставлять один или более запросов контента провайдеру распределенных вычислений, включая информацию идентификации одного или более источников запрашиваемого контента. Идентификаторы могут иметь вид сетевых адресов сетевых ресурсов, таких как веб-сайт или другая, доступная для просмотра в сети, часть контента. Например, пользователь может выбрать или ввести URL-адрес (адрес веб-узла в сети Интернет) (например, http://www.xyzwebsite.com) в окне браузера, в результате чего клиентское вычислительное устройство осуществит передачу запроса для получения нового контента провайдеру распределенных вычислений, включая выбранный URL-адрес.[27] В ответ на один или более запросов контента, провайдер распределенных вычислений может создать новые сеансы удаленного просмотра для одного или более новых запросов контента. Провайдер распределенных вычислений может запросить идентифицируемый сетевой ресурс(ы) от одного или более контент-провайдеров, сети доставки контента или локального либо связанного компонента кэша. Например, программное приложение браузера на инстанцированном компоненте распределенных вычислений может обрабатывать первичный сетевой ресурс, а затем генерировать дополнительные запросы контента для контента, идентифицируемого по одному или более идентификаторам встроенных ресурсов (например, фотографий, видеофайлов и т.д.). В качестве иллюстрации, при наличии других, не браузерных приложений, сетевые ресурсы или контент могут включать любой тип файла или формат, известный в данной области техники и поддерживаемый конкретным программным приложением.
[28] Получив первоначально запрошенный контент (например, запрошенный сетевой ресурс и встроенные ресурсы), провайдер распределенных вычислений может идентифицировать конфигурацию удаленного сеанса просмотра с указанием коммуникационного протокола удаленного сеанса для использования в передаче запрошенного контента, данных пользовательского взаимодействия, промежуточных результатов обработки и другой информации между браузером, выполняемым на клиентском вычислительном устройстве, и браузером, выполняемым на инстанцированном компоненте распределенных вычислений провайдера вычислений и хранения. Информацию, передаваемую между браузером на инстанцированном компоненте распределенных вычислений и браузером на клиентском вычислительном устройстве, обычно называют "информацией о сеансе браузера".
[29] В дополнение к определению коммуникационного протокола удаленного сеанса для передачи информации между клиентским вычислительным устройством и инстанцированным компонентом распределенных вычислений, в одном варианте воплощения, определяемая конфигурация сеанса удаленного просмотра может устанавливать, что одно или более действий обработки, выполняемых по запрашиваемому контенту, должны быть выполнены провайдером распределенных вычислений, а не на клиентском вычислительном устройстве или в дополнение к выполнению на клиентском вычислительном устройстве. В соответствии с выбранной конфигурацией сеанса удаленного просмотра, клиентское вычислительное устройство и инстанцированный компонент распределенных вычислений могут обмениваться информацией сеанса браузера, такой как результаты обработки (например, данные состояния или данные отображения, представляющие собой запрошенный контент), информация пользовательского взаимодействия, а также последующие запросы контента. Клиентское вычислительное устройство может отображать пользователю результаты обработки и другую информацию сеанса браузера и принимать различные данные ввода и данные взаимодействия от пользователя для предоставления их провайдеру распределенных вычислений. Соответственно, в некоторых вариантах воплощения пользователь может ознакомиться с запрошенным контентом аналогично тому, как если бы пользователь обрабатывал запрошенный контент локально на клиентском вычислительном устройстве.
[30] После установления возобновляемого контекста просмотра и запроса контента пользователь может решить закончить сессию просмотра на клиентском вычислительном устройстве. Например, пользователь может закрыть или выйти из браузера на клиентском вычислительном устройстве, отключить питание клиентского вычислительного устройства или просто отвлечься от контента, отображаемого в браузере на клиентском вычислительном устройстве. В качестве иллюстрации, возобновляемый контекст просмотра может поддерживаться провайдером распределенных вычислений независимо от действий пользователя, завершающего взаимодействие с приложением браузера на клиентском устройстве. Например, провайдер распределенных вычислений может поддерживать один или более компонентов программного приложения браузера, связанных с возобновляемым контекстом просмотра, работающих с провайдером распределенных вычислений, может сохранять информацию, связанную с состоянием возобновляемого контекста просмотра, или любую их комбинацию.
[31] В качестве иллюстрации пользователь может выбрать взаимодействие с возобновляемым контекстом просмотра дополнительно, в некоторый более отдаленный момент времени. Например, пользователь может открыть новый экземпляр программного приложения браузера на клиентском вычислительном устройстве или может открыть новый экземпляр программного приложения браузера на втором клиентском вычислительном устройстве и запросить доступ к возобновляемому контексту просмотра. Соответственно, клиентское вычислительное устройство может запросить доступ к возобновляемому контексту просмотра, поддерживаемому устройством распределенных вычислений и хранения данных. Устройство распределенных вычислений и хранения данных может предоставлять информацию сеанса браузера, связанную с возобновляемым контекстом просмотра (например, результаты обработки, связанные с контентом и состоянием) на клиентское вычислительное устройство для отображения в браузере. Браузер на клиентском вычислительном устройстве может обрабатывать информацию сеанса браузера для отображения представления контента на клиентском вычислительном устройстве. В качестве иллюстрации, с точки зрения пользователя состояние и внешний вид контента, отображаемого на клиентском вычислительном устройстве, может, таким образом, быть дублированным или сходным по состоянию и внешнему виду с контентом, имевшимся перед завершением пользователем его предыдущей сессии просмотра.
[32] На ФИГ.1 представлена иллюстративная блок-схема среды распределенных вычислений 100 для управления и обработки запросов контента. Как показано на ФИГ.1, среда распределенных вычислений 100 включает некоторое количество клиентских вычислительных устройств 102 (обычно называемых клиентами), запрашивающих контент и обработку контента от контент-провайдера 104, сервис-провайдера CDN 106 или провайдера распределенных вычислений 107. В иллюстративном варианте воплощения, клиентские вычислительные устройства 102 могут соответствовать широкому спектру вычислительных устройств, включая персональные вычислительные устройства, портативные вычислительные устройства, переносные вычислительные устройства, терминальные вычислительные устройства, мобильные устройства (например, мобильные телефоны, планшетные вычислительные устройства и т.д.), беспроводные устройства, различные электронные устройства и приборы, и тому подобное. На последующих фигурах, каждое из клиентских вычислительных устройств 102 может быть отдельно обозначено для целей иллюстрации как клиентское вычислительное устройство 102А и клиентское вычислительное устройство 102В. Следует понимать, что клиентские вычислительные устройства 102А и 102В могут быть одинаковыми или отличными по отношению друг к другу или по отношению к любому другому клиентскому вычислительному устройству 102. Кроме того, в то время как для целей иллюстрации здесь изображены два клиентских вычислительных устройства 102, следует понимать, что применительно к раскрываемому объекту изобретения может быть использовано любое количество клиентских вычислительных устройств 102. В иллюстративном варианте воплощения, клиентские вычислительные устройства 102 включают необходимые аппаратные и программные компоненты для установления связи через коммуникационную сеть 108, например, глобальную сеть или локальную сеть. Например, клиентские вычислительные устройства 102 могут быть оснащены сетевым оборудованием и программными приложениями браузера, которые облегчают установление связи через Интернет или интранет. Клиентские вычислительные устройства 102 могут иметь различные локальные вычислительные ресурсы, такие как центральные процессоры и архитектуры, память, устройство хранения данных, графические процессоры, устройства определения доступности и пропускной способности коммуникационной сети и т.д.
[33] Среда распределенных вычислений 100 может также включать контент-провайдера 104, имеющего соединение с одним или более клиентскими вычислительными устройствами 102 или другими сервис-провайдерами (например, сервис-провайдером CDN 106, провайдером распределенных вычислений 107 и т.д.) по коммуникационной сети 108. Контент-провайдер 104, показанный на ФИГ.1, соответствует логической связи одного или более вычислительных устройств, связанных с контент-провайдером. В частности, контент-провайдер 104 может включать компонент веб-сервера 110, соответствующий одному или более серверным вычислительным устройствам, для получения и обработки запросов контента (например, веб-страниц) от клиентских вычислительных устройств 102 или других сервис-провайдеров. Контент-провайдер 104 может дополнительно включать компонент сервера источника 112 и связанный компонент хранения данных 114, соответствующий одному или более вычислительным устройствам, для получения и обработки запросов сетевых ресурсов от сервис-провайдера CDN. Контент-провайдер 104 может также дополнительно включать приложение серверного вычислительного устройства 111, например, сервера потоковой передачи данных, для обработки запросов потокового контента. Специалисту в данной области техники будет понятно, что контент-провайдер 104 может быть связан с различными дополнительными вычислительными ресурсами, такими как дополнительные вычислительные устройства для администрирования контента и ресурсов, серверов DNS-имен и тому подобное. Например, хотя это и не показано на ФИГ. 1, контент-провайдер 104 может быть связан с одним или более компонентами сервера DNS-имен, которые могли бы разрешить клиентскому вычислительному устройству посылать DNS-запросы, соответствующие домену контент-провайдера.
[34] Также, согласно ФИГ.1, среда распределенных вычислений 100 может дополнительно включать сервис-провайдера CDN 106, связанного с одним или более клиентскими вычислительными устройствами 102 и другими сервис-провайдерами по коммуникационной сети 108. Сервис-провайдер CDN 106, показанный на ФИГ.1, соответствует логической связи одного или более вычислительных устройств, связанных с сервис-провайдером CDN. В частности, сервис-провайдер CDN 106 может включать некоторое количество позиций точек присутствия (англ. "POP") 116, 122, 128, которые соответствуют узлам коммуникационной сети 108. Каждая из POP CDN 116, 122, 128 включает DNS-компонент 118, 124, 130, составленный из некоторого количества серверных вычислительных устройств DNS для разрешения DNS-запросов от компьютеров-клиентов 102. Каждая из POP CDN 116, 122, 128 также включает кэш-компонент ресурса 120, 126, 132, составленный из некоторого количества серверных вычислительных устройств кэша, для хранения ресурсов от контент-провайдеров и передачи различных запрошенных ресурсов различным компьютерам-клиентам. Компоненты DNS 118, 124 и 130 и кэш-компоненты ресурсов 120, 126, 132 могут дополнительно включать дополнительные программные и/или аппаратные компоненты, которые облегчают установление связи, включая, но не ограничиваясь ими, программные/аппаратные компоненты выравнивания нагрузки или распределения нагрузки.
[35] В иллюстративном варианте воплощения компонент DNS 118, 124, 130 и кэш-компонент ресурса 120, 126, 132 считаются логически сгруппированными, независимо от того, разделены ли физически компоненты или части компонентов. Кроме того, хотя POP CDN 116, 122, 128 показаны на ФИГ.1 логически связанными с сервис-провайдером CDN 106, POP CDN географически распределены по коммуникационной сети 108 так, чтобы наилучшим образом обслуживать клиентские вычислительные устройства 102 с различными демографическими характеристиками. Кроме того, специалисту в данной области техники будет понятно, что сервис-провайдер CDN 106 может быть связан с различными дополнительными вычислительными ресурсами, такими как дополнительные вычислительные устройства для администрирования контента и ресурсов, и тому подобное.
[36] Согласно ФИГ.1, среда распределенных вычислений 100 также может включать провайдера распределенных вычислений 107, соединенного с одним или более клиентскими вычислительными устройствами 102, сервис-провайдером CDN 106 и контент-провайдером 104 по коммуникационной сети 108. Провайдер распределенных вычислений 107, показанный на ФИГ.1, также соответствует логической связи одного или более вычислительных устройств, связанных с провайдером распределенных вычислений. В частности, провайдер распределенных вычислений 107 может включать некоторое количество местоположений точек присутствия ("POP") 134, 142, 148, которые соответствует узлам коммуникационной сети 108. Каждая из POP 134, 142, 148 включает компонент распределенных вычислений (англ. «NCC») 136, 144, 150 для размещения приложений, таких как приложения потоковой передачи данных, с использованием некоторого количества экземпляров виртуальной машины, как правило, называемой экземпляром NCC. Специалисту в данной области техники будет понятно, что NCC 136, 144, 150 будут включать ресурсы и программное обеспечение физических вычислительных устройств для создания нескольких экземпляров виртуальной машины или для динамического инициирования создания экземпляров виртуальной машины. Такое создание может быть основано на конкретном запросе, например, от клиентского вычислительного устройства, или NCC сам по себе может инициировать динамическое создание экземпляра виртуальной машины. Каждый NCC POP 134, 142, 148 также включает компонент хранения 140, 146, 152, составленный из некоторого количества устройств хранения данных для хранения данных любого типа, используемых при доставке и обработке распределенных или вычислительных ресурсов, включая, но не ограничиваясь ими, пользовательские данные, информацию о состоянии, требования к обработке, данные об истории использования и ресурсы от контент-провайдеров, которые будут обрабатываться с помощью экземпляра NCC 136, 144, 150 и передаваться на различные клиентские компьютеры и т.д. В некоторых вариантах воплощения провайдер распределенных вычислений 107 может рассматриваться в качестве провайдера распределенных вычислений и хранения данных. NCC 136, 144, 150 и компоненты хранения 140, 146, 152 могут дополнительно включать дополнительные программные и/или аппаратные компоненты, которые облегчают установление связи, включая, но не ограничиваясь ими, программные/аппаратные компоненты выравнивания нагрузки или распределения нагрузки для выбора экземпляров виртуальной машины, поддерживающих требуемое приложение и/или предоставляющих информацию серверу имен DNS для облегчения маршрутизации запроса.
[37] В иллюстративном варианте воплощения NCC 136, 144, 150 и компоненты хранения 140, 146, 152 считаются логически сгруппированными, независимо оттого, разделены ли физически компоненты или части компонентов. Например, провайдер распределенных вычислений 107 может поддерживать отдельные POP для предоставления NCC и компонентов хранения. Кроме того, хотя NCC POP 134, 142, 148 показаны на ФИГ. 1 логически связанными с провайдером распределенных вычислений 107, POP NCC географически распределены по коммуникационной сети 108 таким образом, чтобы наилучшим образом обслуживать клиентские вычислительные устройства 102 с различными демографическими характеристиками. Кроме того, специалисту в данной области техники будет понятно, что провайдер распределенных вычислений 107 может быть связан с различными дополнительными вычислительными ресурсами, такими как дополнительные вычислительные устройства для администрирования контента и ресурсов, и тому подобное. Кроме того, специалисту в данной области техники будет понятно, что компонентами провайдера распределенных вычислений 107 и компонентами сервис-провайдера CDN 106 можно управлять с помощью одинаковых или различных объектов.
[38] В соответствии с ФИГ.2-6 будет проиллюстрировано взаимодействие между различными компонентами среды распределенных вычислений 100 согласно ФИГ.1. В частности, ФИГ.2-6 иллюстрируют взаимодействие между различными компонентами среды распределенных вычислений 100 для обмена контентом между клиентским вычислительным устройством 102 и контент-провайдером 104 через провайдера распределенных вычислений 107. Для примера, однако, иллюстрация упрощена таким образом, что многие из компонентов, используемых для облегчения осуществления связи, не показаны. Специалисту в данной области техники будет понятно, что такие компоненты могут быть использованы и соответственно будет происходить дополнительное взаимодействие без отступления от сущности и объема настоящего изобретения.
[39] Согласно ФИГ.2, способ может быть начат с генерации и обработки запроса сеанса просмотра от клиентского вычислительного устройства 102 провайдеру распределенных вычислений 107. В качестве иллюстрации, клиентское вычислительное устройство 102 может загрузить браузер для просмотра сетевого контента в ответ на событие или запрос пользователя. После загрузки браузера, браузер может создать запрос нового сеанса просмотра. С точки зрения пользователя клиентского вычислительного устройства, запрос нового сеанса просмотра соответствует запросу, предназначенному для передачи запроса одному или более соответствующим контент-провайдерам 104. В качестве иллюстрации, этот запрос может быть сгенерирован автоматически в результате загрузки браузера (например, запрос страницы по умолчанию или «домашней» страницы) или может быть сгенерирован в результате перехода пользователя по ссылке или ввода сетевого адреса в адресной строке. Как показано на ФИГ.2, запрос сеанса просмотра передается сначала провайдеру распределенных вычислений 107. В иллюстративном варианте воплощения провайдер распределенных вычислений 107 использует интерфейс прикладной программы регистрации (англ. «API») для приема запросов сеанса просмотра от клиентского вычислительного устройства 102. Запрос сеанса просмотра может включать информацию о сетевом адресе, соответствующем запрошенному сетевому ресурсу, который может быть представлен в любой форме, включая, но не ограничиваясь ими, адрес по Интернет-протоколу ("IP-адрес"), URL-адрес, адрес управления доступом к среде ("MAC-адрес") и т.д.
[40] После получения запроса сеанса просмотра, провайдер распределенных вычислений 107 может выбрать соответствующий связанный компонент распределенных вычислений (здесь и далее «NCC») точки присутствия (здесь и далее «РОР»), такой как NCC POP 142 для обслуживания запроса сеанса просмотра. Выбор NCC POP может определить обработку и доступные сетевые ресурсы для инстанцированной виртуальной машины. Выбор обработки и сетевых ресурсов и инициализация программного обеспечения в экземпляре NCC POP могут быть выполнены, по меньшей мере частично, с целью оптимизации связи с контент-провайдерами 104 и клиентскими вычислительными устройствами 102.
[41] В соответствии с ФИГ.3 будет описано иллюстративное взаимодействие для генерации и обработки запроса для сетевого ресурса от провайдера распределенных вычислений 107 контент-провайдеру 104. Как показано на ФИГ.3, выбранный NCC POP 142 может генерировать сеанс просмотра, соответствующий одному или более контент-провайдерам, на основе запроса сеанса просмотра, например, иллюстративного запроса сеанса просмотра, изображенного выше на ФИГ.2. В качестве иллюстрации, инстанцирование нового экземпляра сеанса просмотра может включать загрузку нового экземпляра виртуальной машины и/или экземпляра браузера в NCC POP 142 с резервированием или выделением устройства памяти, области памяти или кэша, времени процессора, пропускной способности сети или других вычислительных или сетевых ресурсов для нового сеанса просмотра.
[42] После инициализации нового экземпляра сеанса просмотра, NCC POP 142 может предоставить запрос сетевого ресурса контент-провайдеру 104 на основе сетевого адреса, включенного в запрос сеанса просмотра. Например, запрос сеанса просмотра может включать URL-адрес вебстраницы, такой как http://www.xvzsite.com/default.htm. NCC POP 142 может привести URL-адрес через DNS-преобразователь к IP-адресу, связанному с провайдером распределенных вычислений (не показан), и может запросить веб-страницу у контент-провайдера 104, связанную с определенным IP-адресом. В различных вариантах воплощения сетевой ресурс может быть получен от любой комбинации контент-провайдеров, серверов сети доставки контента (здесь и далее "CDN") или кэшей, связанных с провайдером распределенных вычислений 107. Например, провайдер распределенных вычислений может проверить, не хранится ли ресурс в локальном кэше или на другом сервере или у сервис-провайдера, связанного с провайдером распределенных вычислений 107. Если сетевой ресурс хранится в локальном или связанном местоположении, NCC POP 142 может извлечь сетевой ресурс из локального или связанного местоположения, а не получать его от стороннего контент-провайдера 104 или сервис-провайдера CDN 106. В качестве иллюстрации, NCC POP 142 может предоставить запросы для любого количества сетевых ресурсов, которые включены в запрос сеанса просмотра, и может получить эти сетевые ресурсы от любого количества разных источников, в последовательном или параллельном режиме.
[43] Как показано на ФИГ.3, контент-провайдер 104 принимает запрос ресурса от NCC POP 142 и, соответственно, обрабатывает запрос. В одном варианте воплощения контент-провайдер 104 обрабатывает запрос ресурса, как если бы он был первоначально предоставлен клиентским вычислительным устройством 102. Например, контент-провайдер 104 может выбрать тип контента, порядок выдачи контента или версию контента в соответствии с требованиями запрашивающего клиентского вычислительного устройства 102. В другом варианте воплощения контент-провайдеру 104 может быть предоставлена информация, связанная с NCC POP 142, для использования в предоставлении запрошенного контента (например, доступный объем обрабатывающих ресурсов или пропускная способность сети).
[44] После получения запрошенного сетевого ресурса от контент-провайдера 104 (или другого источника, назначенного контент-провайдером), NCC POP 142 может обработать сетевой ресурс для извлечения внедренных идентификаторов ресурсов и собрать информацию для определения конфигурации сеанса удаленного просмотра. Например, сетевой ресурс, такой как веб-страница, может включать встроенную информацию стиля CSS и JavaScript, а также встроенные идентификаторы ресурсов для дополнительных ресурсов, таких как текст, изображения, видео, аудио, анимация, исполняемый код и другие HTML, CSS и JavaScript-файлы. При извлечении встроенных идентификаторов ресурсов NCC POP 142 может собирать информацию об обрабатываемых сетевых ресурсах для последующего использования при определении конфигурации сеанса удаленного просмотра, как это обсуждается ниже со ссылкой на ФИГ.4.
[45] В соответствии с ФИГ.4 раскрывается иллюстративное взаимодействие для генерации и обработки одного или более запросов, соответствующих одному или более встроенным ресурсам, от провайдера распределенных вычислений к контент-провайдеру и сети доставки контента. Как показано на ФИГ.4, выбранный NCC POP 142 может предоставить запросы ресурсов одному или боле