УПРАВЛЕНИЕ СЕАНСОМ УДАЛЕННОГО ПРОСМОТРА
REMOTE VIEWING SESSION CONTROL

УРОВЕНЬ ТЕХНИКИ
[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, для использования в предоставлении запрошенного контента (например, доступный объем обрабатывающих ресурсов или пропускная способность сети).
[45] В соответствии с ФИГ.4 раскрывается иллюстративное взаимодействие для генерации и обработки одного или более запросов, соответствующих одному или более встроенным ресурсам, от провайдера распределенных вычислений к контент-провайдеру и сети доставки контента. Как показано на ФИГ.4, выбранный NCC POP 142 может предоставить запросы ресурсов одному или более источникам контента, таким как контент-провайдер 104 и CDN POP 116. Запросы ресурсов могут соответствовать встроенным ресурсам на основе одного или более встроенных идентификаторов ресурсов, извлеченных из запрошенного сетевого ресурса (например, веб-страницы), как описано выше по ФИГ. 3. В различных вариантах воплощения встроенные ресурсы могут быть получены от любой комбинации контент-провайдеров, серверов CDN или кэшей, связанных с провайдером распределенных вычислений 107. Например, провайдер распределенных вычислений может проверить, не хранится ли встроенный ресурс в локальном кэше или на другом сервере или у сервис-провайдера, связанного с провайдером распределенных вычислений 107. Если встроенный ресурс хранится в локальном или связанном местоположении, NCC POP 142 может извлечь встроенный ресурс из локального или связанного местоположения, а не получать его от стороннего контент-провайдера или CDN. В качестве иллюстрации, NCC POP 142 может предоставить запросы для любого количества встроенных ресурсов, привязанных к сетевому ресурсу, и может получить эти встроенные ресурсы от любого количества разных источников, в последовательном или параллельном режиме. После получения запрошенных ресурсов, NCC POP 142 может обработать ресурсы и запрошенный контент, чтобы определить конфигурацию сеанса удаленного просмотра для обработки и передачи контента на клиентское вычислительное устройство 102.
[46] По ФИГ.5 раскрывается иллюстративное взаимодействие для генерации и обработки результатов обработки и данных пользовательского взаимодействия между провайдером распределенных вычислений и клиентским вычислительным устройством. Как описано выше, в одном варианте воплощения, соответствующие браузеры на инстанцированном компоненте распределенных вычислений и клиентском вычислительном устройстве 102 могут обмениваться информацией сеанса браузеров, связанной с выделением и обработкой запрашиваемых ресурсов на инстанцированном компоненте распределенных вычислений и клиентском вычислительном устройстве. Как показано на ФИГ. 5, выбранный NCC POP 142 может предоставить первоначальный результат обработки на клиентское вычислительное устройство 102 по сети 108. Первоначальный результат обработки может соответствовать запрашиваемому сетевому контенту, например, веб-странице, а также связанным с ним встроенным ресурсам, обрабатываемым NCC POP 142 в соответствии с выбранной конфигурацией сеанса удаленного просмотра, как описано выше по фиг 4. NCC POP 142 также производит определение дополнительных процессов, которые будут выполняться на NCC POP 142, на клиентском вычислительном устройстве 102 или на них обоих. После получения первоначального результата обработки и выделения процессов клиентское вычислительное устройство 102 может выполнить все оставшиеся действия по обработке в соответствии с первоначальным результатом обработки в соответствии с требованиями выбранной конфигурации сеанса удаленного просмотра и может отобразить полностью обработанный контент в области отображения контента в браузере. Клиентское вычислительное устройство 102 может локально обрабатывать любые локальные пользовательские взаимодействия с локальными компонентами интерфейса или элементами контента и может обеспечить пользовательские взаимодействия, для которых требуется удаленная обработка провайдером распределенных вычислений 107. Провайдер распределенных вычислений 107 может представить обновленные результаты обработки на клиентское вычислительное устройство в ответ на изменения контента или данных удаленного пользовательского взаимодействия от клиентского вычислительного устройства.
[47] На ФИГ.6 представлена блок-схема среды доставки контента, показанной на ФИГ.1, иллюстрирующая раскрытие генерирования и обработки дополнительного запроса нового сеанса просмотра от клиентского вычислительного устройства провайдеру распределенных вычислений. Как показано на ФИГ.6, второй запрос нового сеанса просмотра может быть отправлен провайдеру распределенных вычислений 107 от клиентского вычислительного устройства 102 по сети 108. В иллюстративном варианте воплощения провайдер распределенных вычислений 107 использует информацию с API для приема запросов сеанса просмотра от клиентского вычислительного устройства 102.
[48] Дополнительный запрос сеанса просмотра может быть сгенерирован клиентским вычислительным устройством 102 в ответ на открытие пользователем нового окна браузера с новой областью отображения контента, открытие новой области отображения контента в существующем окне браузера (например, открытие новой вкладки в браузере), запрос нового сетевого контента в существующей области отображения контента (например, переход по ссылке на новый сетевой ресурс или ввод нового сетевого адреса в браузере) или любое другое пользовательское взаимодействие. Например, пользователь, просматривающий первую вебстраницу, соответствующую первому экземпляру сеанса просмотра, может проследовать по ссылке, которая открывает новую вкладку или окно браузера для просмотра второй веб-страницы. В одном варианте воплощения любые необходимые этапы получения и обработки контента, связанного со второй веб-страницей, могут быть выполнены текущим инстанцированным компонентом распределенных вычислений, в котором браузер может производить обработку обоих запросов ресурсов. В другом варианте воплощения запрос клиентского вычислительного устройства 102 может быть обработан как новый запрос сеанса просмотра провайдеру распределенных вычислений 107, включая сетевой адрес второй веб-страницы. В этом варианте воплощения браузер на клиентском вычислительном устройстве может не точно запросить отдельный сеанс просмотра, и пользовательское взаимодействие с браузером на клиентском вычислительном устройстве 102 может оказаться частью того же самого сеанса просмотра. Как описано выше со ссылкой на ФИГ.2 и 3, провайдер распределенных вычислений 107 может инициировать инстанцирование компонента распределенных вычислений для получения и обработки контента, связанного со второй веб-страницей. В других вариантах воплощения запрос нового сеанса просмотра, который может быть сгенерирован клиентским вычислительным устройством 102, может соответствовать разделам сетевого ресурса (например, фреймам веб-страницы), отдельным сетевым ресурсам или самим встроенным ресурсам, объектам данных, включенным в совокупность контента, или отдельным сетевым ресурсам.
[49] В качестве иллюстрации, дополнительный запрос сеанса просмотра может включать любое количество частей данных или информации, включающей, без ограничения, информацию, связанную с пользователем, информацию, связанную с клиентским вычислительным устройством 102 (например, информацию аппаратных средств или программного обеспечения, физического или логического местоположения устройства и т.д.), информацию, связанную с сетью 108, предпочтениями пользователя или установками браузера (например, требуемый протокол удаленного сеанса просмотра, список предпочтений, древовидную схему решений или другую информацию), информацию, связанную с провайдером распределенных вычислений 107, информацию, связанную с одной или более частей запрашиваемого сетевого контента (например, сетевой адрес сетевого ресурса), и т.д. Запрашиваемый контент может включать в себя любые формы цифрового контента, включая веб-страницы или другие документы, текст, изображения, видео, аудио, исполняемые сценарии или код, либо любой другой тип цифрового ресурса.
[50] После получения запроса сеанса просмотра, провайдер распределенных вычислений 107 может выбрать соответствующий компонент распределенных вычислений, такой как NCC POP 142, для обслуживания запроса сеанса просмотра. Как обсуждалось выше со ссылкой на ФИГ. 2, провайдер распределенных вычислений 107 может выбрать NCC POP для обслуживания запроса сеанса просмотра на основе любого количества факторов, включая, но не ограничиваясь ими, доступные NCC POP ресурсы (например, объем доступной памяти, загрузка процессора, загрузка сети и т.д.), финансовые затраты на обслуживание запроса сеанса просмотра в NCC POP, местоположение NCC POP, соответствующее клиентскому вычислительному устройству 102, контент-провайдеру 112 или CDN POP 116, статус кэша NCC POP (например, хранится ли запрошенный ресурс в кэше NCC POP) и т.д. В одном варианте воплощения провайдер распределенных вычислений 107 может выбрать некоторое количество NCC POP для обслуживания запроса сеанса просмотра. В качестве иллюстрации, хотя провайдер распределенных вычислений 107 изображен здесь в целях иллюстрации как выбравший NCC POP 142, провайдер распределенных вычислений 107 может выбрать любой имеющийся NCC POP для обслуживания запроса сеанса просмотра. Например, одно клиентское вычислительное устройство 102 может одновременно или последовательно предоставить провайдеру распределенных вычислений 107 три различных запроса сеанса просмотра, соответствующие различным сетевым ресурсам. Провайдер распределенных вычислений 107 может выбрать различные NCC POP для каждого запроса сеанса просмотра, один и тот же NCC POP для всех трех запросов сеанса просмотра или любую их комбинацию. Как обсуждалось выше, решение о том, выбрать ли другой NCC POP, чем тот, который был использован для предыдущего или одновременного запроса сеанса просмотра, может быть принято на основе доступных ресурсов системы, случайно или в соответствии с любым другим фактором, как обсуждалось выше и в отношении ФИГ.2.
[51] ФИГ.7 представляет собой схему пользовательского интерфейса, иллюстративно изображающую интерфейс браузера и отображение контента сеанса просмотра. Как описано выше со ссылкой на ФИГ.5, браузер 700 может иметь область отображения контента 702, а также один или более локальных компонентов интерфейса. Эти локальные компоненты интерфейса могут включать панели инструментов, меню, кнопки, адресные строки, полосы прокрутки, окно элементов управления изменением размеров или любые другие элементы управления пользовательского интерфейса. В качестве иллюстрации, локальные компоненты интерфейса могут отображаться отдельно от области отображения контента или могут быть наложены или встроены в область отображения контента.
[52] Взаимодействия с локальными компонентами интерфейса могут рассматриваться как локальные пользовательские взаимодействия или удаленные пользовательские взаимодействия в зависимости от обработки, требуемой при взаимодействии, и конфигурации сеанса удаленного просмотра. Например, выбор предпочитаемой опции в меню браузера может быть полностью обработан браузером как локальное пользовательское взаимодействие. Обработка, требуемая для отображения меню, обеспечения визуальной обратной связи при выборе, отображения окна настроек и обработки изменений, внесенных в настройки браузера, может выполняться локально. Как обсуждалось выше, локальная обработка пользовательских взаимодействий может обеспечить большую быстроту реагирования браузера в отличие от варианта с отправкой данных пользовательского взаимодействия для обработки на NCC POP 142. В качестве другого примера, при использовании конфигурации сеанса удаленного просмотра, который определяет расширенную обработку на NCC POP 142 (например, конфигурации сеанса удаленного просмотра с использованием коммуникационного протокола удаленного сеанса, такого как RDP), выбор кнопки обновления контента на панели инструментов браузера может быть осуществлен как при локальном, так и при удаленном пользовательском взаимодействии. Ограниченная обработка, требуемая для обеспечения обратной связи интерфейса, соответствующей кнопке выбора, может быть выполнена на клиентском вычислительном устройстве 102, чтобы обеспечить более быстрое реагирование интерфейса, в то время как команда обновления, которая может потребовать обработки сетевого контента, отображаемого в области отображения контента браузера, может быть отправлена как данные пользовательского взаимодействия на NCC POP 142 для обработки. NCC POP 142 может затем передать обновленные результаты обработки, соответствующие обновленному сетевому контенту, обратно на клиентское вычислительное устройство 102 для отображения.
[53] В одном варианте воплощения окно браузера 700 может соответствовать возобновляемому контексту удаленного просмотра. Что касается этого конкретного варианта воплощения, браузер 700 может включать наименование возобновляемого контекста просмотра 706 или другой идентифицирующий видимый указатель текущего возобновляемого контекста просмотра. В одном варианте воплощения возобновляемый контекст просмотра может включать множество веб-страниц или другого сетевого контента, организованного как вкладки контента 708 в окне браузера 700. В качестве иллюстрации, контент и отображение состояния, связанного с контентом, организованные как вкладки контента 708, могут поддерживаться провайдером распределенных вычислений 107 после выхода или закрытия браузера 700. Соответственно, новый экземпляр браузера на этом или другом клиентском вычислительном устройстве 102 может перезагрузить контент и вкладки контента 708 на основании результатов обработки, предоставленных провайдером хранения 107 после последующего осуществления доступа к имеющемуся возобновляемому контексту просмотра.
[54] На ФИГ.8 показана схема, иллюстративно изображающая действия по обработке контента браузера в виде последовательности подсистем обработки 800. Во многих вариантах воплощения браузер может обрабатывать совокупность контента (например, сетевые ресурсы, такие как веб-страницы и связанные встроенные ресурсы) в последовательности действий обработки. В качестве иллюстрации, и, как описано выше со ссылкой на ФИГ.3-5, конфигурация сеанса удаленного просмотра может определять разделение между действиями обработки, выполняемыми провайдером распределенных вычислений (например, NCC POP), и действиями обработки, выполняемыми на клиентском вычислительном устройстве 102. Это разделение может назначить выполнение определенных действий по обработке к выполнению на NCC POP и на клиентском вычислительном устройстве 102, или может назначить все действия по обработке одному устройству или компоненту. Например, NCC POP может выполнить все эти различные действия обработки в экземпляре сеанса просмотра и отправить полностью обработанные результаты RDP обработки на клиентское вычислительное устройство 102 для побитовой сборки и отображения. Любое количество различных конфигураций сеанса удаленного просмотра может быть использовано одним или более экземплярами сеансов просмотра, запущенными на NCC POP.
[55] Для специалиста в данной области техники будет понятно, что подсистемы, показанные здесь, изображены с целью иллюстрации и не предназначены для описания необходимого порядка или окончательного списка подсистем браузера. Различные компоненты программного обеспечения браузера могут воплощать большее или меньшее количество подсистем браузера, чем показано здесь, а порядок подсистем браузера или соответствующих действий по обработке может быть реализован любым количеством различных способов. Хотя подсистемы обработки 800, показанные здесь для целей иллюстрации, предназначены для обработки веб-страниц или другого веб-контента, специалисту в данной области техники будет понятно, что обработка других типов файлов или сетевых ресурсов может быть подразделена аналогичным способом. Например, специалисту в данной области техники будет понятно, что подобная схема может быть разработана для обработки изображений, видео, аудио, информации базы данных, проектных 3d-данных или любых других форматов файлов или типов данных, известных в данной области техники. Подобная схема также может быть разработана для любого количества операций операционной системы устройства или архитектуры обработки программного обеспечения, таких как планирование, управление памятью или файлами, управление системными ресурсами, обработка или обслуживание выполнения или управления и т.д. Кроме того, хотя протокол HTML и коммуникационные протоколы удаленного сеанса RDP рассматриваются здесь для примера, специалисту в данной области техники будет понятно, что конфигурация сеанса удаленного просмотра может позволять реализовывать любое количество протоколов удаленной коммуникации для любого количества определенных действий по обработке, и что конфигурация сеанса удаленного просмотра может быть сформулирована для выполнения любой части или комбинации действий, указанных ниже для любого сочетания клиентского вычислительного устройства 102 и провайдера распределенных вычислений 107.
[56] В качестве иллюстрации, первой подсистемой обработки, участвующей в обработке и отображении сетевого контента, является сетевая подсистема 802. В качестве иллюстрации, сетевая подсистема 802 может отвечать за все коммуникации между браузером и контент-провайдером, включая локальное кэширование веб-контента. Сетевая подсистема, как правило, ограничена по производительности сетью пользователя. Конфигурация сеанса удаленного просмотра, которая определяет распределение действий по обработке в сетевой подсистеме 802, может включать конфигурацию сеанса удаленного просмотра с использованием коммуникационного HTML-протокола удаленного сеанса, где одно или более действий кэширования или поиска ресурсов были выполнены в NCC POP, но парсинг (синтаксический анализ) и обработка контента были произведены на клиентском вычислительном устройстве. [57] Так как сетевые ресурсы, такие как HTML-документы, загружаются с сервера, они могут быть переданы в HTML-подсистему 804, которая анализирует документ, инициирует дополнительные загрузки в сетевой подсистеме и создает структурное представление документа. Современные браузеры могут также содержать связанные подсистемы, которые используются для XHTML, XML и SVG документов. Конфигурация сеанса удаленного просмотра, разделяющая действия обработки в HTML-подсистеме 804, может включать конфигурацию сеанса удаленного просмотра с использованием коммуникационного HTML-протокола удаленного сеанса, где начальная HTML-страница обрабатывается в NCC POP для извлечения встроенных идентификаторов ресурсов, но дополнительная обработка и анализ контента осуществляется на клиентском вычислительном устройстве. В другом варианте воплощения, конфигурация сеанса удаленного просмотра, разбивающая действия обработки в HTML-подсистеме 804, позволяет выполнять первичную обработку, чтобы создать структурное представление HTML-документа, а также предоставляет результат обработки, включающий структурное представление и связанные встроенные ресурсы на клиентское вычислительное устройство для обработки.
[58] Если встречается CSS, независимо от того, он внутри HTML документа или встроенного CSS документа, он может быть передан в CSS-подсистему 806 для анализа информации о стиле и создания структурного представления, к которому можно обратиться позже. В качестве иллюстрации, конфигурация сеанса удаленного просмотра, разделяющая действия обработки в CSS-подсистеме 806, может формировать результат обработки, включающий структурное представление CSS и структурное представление HTML, и предоставлять результат обработки и связанные встроенные ресурсы на клиентское вычислительное устройство для обработки.
[59] HTML документы часто содержат метаданные, например, информацию, описанную в заголовке документа или атрибутах, применяемых к элементу. Накопительная подсистема 808 может отвечать за хранение и обеспечение доступа к этим метаданным. Конфигурация сеанса удаленного просмотра, разделяющая действия по обработке в накопительной подсистеме 808, может формировать результат обработки, включающий обработанные метаданные наряду с любыми другими структурными представлениями, рассмотренными выше, и предоставить результат обработки и связанные встроенные ресурсы на клиентское вычислительное устройство для обработки.
[63] После того, как документ будет сформирован, в браузере может возникнуть необходимость применения информации о стиле, прежде чем она может быть отображена пользователю. Подсистема форматирования 816 получает HTML-документ и применяет стили. В качестве иллюстрации, конфигурация сеанса удаленного просмотра, разделяющая действия по обработке в подсистеме форматирования 816, может формировать результат обработки, включающий HTML-представление с примененными стилями, а также любые другие обработанные данные состояния, вызовы API, структурные переменные, сценарии или данные, описанные выше, и предоставить результат обработки и любые другие связанные встроенные ресурсы на клиентское вычислительное устройство для обработки. [64] В одном из вариантов воплощения CSS является системой макетирования страницы на основе блока. После того как документ оформлен стилем, на следующем этапе, в подсистеме компоновки блока 818, могут быть сформированы прямоугольные блоки, которые будут отображаться пользователю. Этот способ может определить, к примеру, размер блоков и может быть тесно интегрирован со следующим этапом, макетирования страницы. Конфигурация сеанса удаленного просмотра, разделяющая действия по обработке в подсистеме компоновки блока 818, может формировать результат обработки, включающий информацию о блоке, а также любые другие обработанные данные состояния, вызовы API, структурные переменные, сценарии или данные, описанные выше, и предоставить результат обработки и любые другие связанные встроенные ресурсы на клиентское вычислительное устройство для обработки.
[65] После применения стилей к контенту в браузере и формирования блоков может производиться компоновка контента. Подсистема макетирования страницы 820 отвечает за эту алгоритмически сложную операцию. В качестве иллюстрации, конфигурация сеанса удаленного просмотра, разделяющая действия по обработке в подсистеме макетирования страницы 820, может обрабатывать различные данные состояния, вызовы API, структурные переменные, сценарии или данные, описанные выше, для формирования результата обработки, включая информацию компоновки страницы, для клиентского вычислительного устройства. В качестве иллюстрации, NCC POP может использовать различные данные или настройки, связанные с клиентским вычислительным устройством или браузером (например, как это предусмотрено в первоначальном запросе сеанса просмотра), в целях создания подходящего макета страницы на клиентском вычислительном устройстве. Например, мобильное устройство может предоставить данные о разрешении экрана и режиме отображения на NCC POP. NCC POP может основывать вычисление макета страницы на этом разрешении экрана и режиме отображения в целях получения результата обработки, соответствующего представлению контента, подходящему для браузера, работающего на мобильном устройстве. В качестве иллюстрации, в различных вариантах воплощения любая другая подсистема, реализованная NCC POP, может использовать данные, связанные с клиентским вычислительным устройством или браузером, при генерации результата обработки для клиента.
[66] Заключительный этап способа может выполняться внутри подсистемы отображения 822, где целевой контент отображается пользователю. Этот процесс часто называют выводом. Конфигурация сеанса удаленного просмотра, разделяющая действия по обработке в сетевой подсистеме 802, может включать конфигурацию сеанса удаленного просмотра, использующую коммуникационный протокол удаленного сеанса RDP, где почти вся обработка выполняется в NCC POP, а результат обработки, включая растровые данные и данные низкоуровневого интерфейса, передается на клиентское вычислительное устройство для отображения.
[67] ФИГ.9 представляет собой иллюстративную блок-схему алгоритма нового сеанса просмотра 900, осуществляемого провайдером распределенных вычислений 107, показанным на ФИГ.1. Алгоритм нового сеанса просмотра 900 начинается в блоке 902. В блоке 904 провайдер распределенных вычислений 107 получает запрос нового сеанса просмотра от клиентского вычислительного устройства 102. Как описано выше, клиентское вычислительное устройство 102 может загрузить браузер для просмотра сетевого контента в ответ на событие или запрос пользователя. После загрузки браузера, браузер может осуществить запрос нового сеанса просмотра. С точки зрения пользователя клиентского вычислительного устройства запрос нового сеанса просмотра соответствует запросу, предназначенному для его передачи одному или более соответствующим контент-провайдерам 104. В качестве иллюстрации, этот запрос может быть сгенерирован автоматически в результате загрузки браузера (например, запрос страницы по умолчанию или «домашней» страницы) или может быть сгенерирован в результате перехода пользователя по ссылке или ввода сетевого адреса в адресной строке. Этот запрос сеанса просмотра может включать один или более адресов или ссылок на различные сетевые ресурсы или другой контент, запрошенный клиентским вычислительным устройством 102. В иллюстративном варианте воплощения запрос сеанса просмотра передается с помощью API.
[68] В блоке 906 провайдер распределенных вычислений 107 может выбрать связанный NCC POP для создания нового сеанса просмотра на основе запроса сеанса просмотра. Как обсуждалось выше со ссылкой на ФИГ.1, провайдер распределенных вычислений 107 может включать любое количество NCC POP, распределенных по любому количеству физических или логических местоположений. Провайдер распределенных вычислений 107 может выбрать NCC POP для обслуживания запроса сеанса просмотра на основе любого количества факторов, включая, но не ограничиваясь ими, доступные ресурсы NCC POP (например, объем доступной памяти, загрузку процессора, нагрузку на сеть и т.д.), финансовые затраты на обслуживание запроса сеанса просмотра в NCC POP, местоположение NCC POP, соответствующее клиентскому вычислительному устройству 102, контент-провайдеру 104 или CDN POP 116, статус кэша NCC POP (например, хранится ли уже запрошенный ресурс в кэше POP NCC) и т.д.
[69] В одном варианте воплощения провайдер распределенных вычислений 107 может выбрать некоторое количество NCC POP для обслуживания запроса сеанса просмотра. Например, провайдер распределенных вычислений 107 может выбрать два NCC POP с различным логическим местоположением в сети. Каждый NCC POP может независимо запрашивать и обрабатывать сетевой контент для клиентского вычислительного устройства 102, а клиентское вычислительное устройство 102 может принимать данные от первого NCC POP, чтобы вернуть результат обработки. Будучи выбранным провайдером распределенных вычислений 107, NCC POP 142 может получить запрос сеанса просмотра. В одном варианте воплощения NCC POP 142 может получить запрос сеанса просмотра, переданный ему компонентом провайдера распределенных вычислений 107. В другом варианте воплощения NCC POP 142 или клиентское вычислительное устройство 102 могут получать информацию о соединении, позволяющую создать непосредственную связь между NCC POP 142 и клиентским вычислительным устройством 102. В качестве иллюстрации, NCC POP 142 может получать запрос сеанса просмотра, первоначально предоставленный провайдеру распределенных вычислений 107, может получать подмножество информации (например, только сетевой адрес запрошенного содержимого) или может получать дополнительную информацию, не включенную в первоначальный запрос сеанса просмотра. [70] После выбора NCC POP 142, провайдер распределенных вычислений 107 может инициировать создание NCC POP 142 нового сеанса просмотра. В качестве иллюстрации, инстанцирование нового экземпляра сеанса просмотра может включать загрузку нового экземпляра виртуальной машины и/или экземпляра браузера в NCC POP 142 с резервированием или выделением устройства памяти, области памяти или кэша, времени процессора, пропускной способности сети или других вычислительных или сетевых ресурсов для нового сеанса просмотра. В качестве иллюстрации, одна или более характеристик нового экземпляра сеанса просмотра и/или браузера, например, может быть основана на информации клиентского вычислительного устройства 102, включенной в запрос сеанса просмотра. Например, запрос сеанса просмотра может включать тип устройства или тип браузера, разрешение экранного устройства, область отображения браузера или другую информацию, определяющую параметры отображения или возможности клиентского вычислительного устройства 102 или браузера. NCC POP 142 может соответственно создать экземпляр виртуальной машины и/или экземпляр браузера с такими же или аналогичными возможностями, как и на клиентском вычислительном устройстве 102. В качестве иллюстрации, поддержка экземпляра виртуальной машины и/или браузера с такими же или аналогичными возможностями, как у клиентского вычислительного устройства 102, может позволить NCC POP 142 обработать сетевой контент в соответствии с соответствующими размерами и компоновкой, требуемой для отображения на конкретном клиентском вычислительном устройстве 102.
[71] В некоторых вариантах воплощения NCC POP 142 может использовать имеющийся экземпляр виртуальной машины и/или экземпляр браузера в дополнение или в качестве альтернативы, для создания нового сеанса просмотра. Например, после выбора NCC POP 142 провайдер распределенных вычислений 107 может побудить NCC POP 142 к связыванию существующего экземпляра браузера и/или экземпляра виртуальной машины, например, одного или более экземпляров, ранее инстанцированных в NCC POP 142, с новым запросом сеанса просмотра. В качестве иллюстрации, имеющийся экземпляр сеанса браузера и/или экземпляр виртуальной машины может соответствовать другому сеансу просмотра, сеансу удаленного приложения или другому удаленному процессу, связанному с пользователем или клиентским вычислительным устройством 102, или может быть ранее инстанцированным экземпляром программного обеспечения несвязанного сеанса просмотра или удаленного процесса. В других вариантах воплощения NCC POP 142 может создать новый экземпляр браузера или другого прикладного процесса в существующем экземпляре виртуальной машины или может объединить использование ранее инстанцированных и вновь инстанцированных программных процессов любым количеством других способов. В дополнительных вариантах воплощения провайдер распределенных вычислений или NCC POP 142 может инстанцировать любое количество новых экземпляров виртуальных машин и/или экземпляров браузера (или использовать существующие инстанцированные экземпляры) на основе одного запроса сеанса просмотра.
[72] В блоке 908 провайдер распределенных вычислений 107 может предоставить запрос одного или более сетевых ресурсов контент-провайдеру или сервис-провайдеру CDN на основе сетевого адреса, включенного в запрос сеанса просмотра. В различных вариантах воплощения один или более сетевых ресурсов могут быть дополнительно или альтернативно получены из локального кэша на NCC POP 142 или иным образом связаны с провайдером распределенных вычислений 107. Специалисту в данной области техники будет понятно, что в других вариантах воплощения ссылка или сетевой адрес может соответствовать документу или файлу, хранящемуся в цифровом файлообменнике или в другом сетевом месте хранения данных или в компоненте кэша, связанном с провайдером распределенных вычислений 107 или клиентским вычислительным устройством 102. В некоторых вариантах воплощения запрос нового сеанса может включать документ или файл в качестве альтернативы или в дополнение к сетевому адресу. В блоке 910 провайдер распределенных вычислений 107 получает один или более сетевых ресурсов. После получения запрошенного сетевого ресурса, NCC POP 142 может обрабатывать сетевой ресурс для извлечения встроенных идентификаторов ресурса.
[73] В блоке 912 провайдер распределенных вычислений 107 может предоставлять запросы ресурсов одному или более источникам контента, таким как контент-провайдеры, сервис-провайдеры CDN и кэши. Запросы ресурсов могут соответствовать встроенным ресурсам на основе одного или более идентификаторов встроенных ресурсов, извлеченных из одного или более сетевых ресурсов, как описано для блока 910 выше. В блоке 914 провайдер распределенных вычислений 107 может получить эти встроенные ресурсы из любого количества разных источников, в последовательном или параллельном режиме.
[74] В блоке 916 провайдер распределенных вычислений 107 может обрабатывать один или более сетевых ресурсов и связанные с ними встроенные ресурсы, чтобы определить конфигурацию сеанса удаленного просмотра для обработки и передачи контента на клиентское вычислительное устройство 102. Конфигурация сеанса удаленного просмотра может включать любой частный или государственный удаленный протокол, позволяющий осуществлять обмен данными и пользовательские взаимодействия или осуществлять запросы между клиентом и удаленным сервером. Конфигурация сеанса удаленного просмотра может иллюстративно включать как коммуникационный протокол удаленного сеанса, так и схему обработки для предоставления обработанного (или необработанного) контента на клиентское вычислительное устройство для отображения в области отображения контента браузера.
[75] В качестве иллюстрации, конфигурация сеанса удаленного просмотра может определять или указывать коммуникационный протокол удаленного сеанса, включая, но не ограничиваясь ими, сетевой протокол, модель передачи сигнала, транспортный механизм или формат инкапсуляции для обмена данными состояния, пользовательскими взаимодействиями и другими данными и контентом между провайдером распределенных вычислений и клиентским вычислительным устройством. Примеры коммуникационных протоколов удаленного сеанса, известные в данной области техники, включают протокол удаленного рабочего стола (RDP), протокол X-Windows, протокол удаленного администрирования (Virtual Network Computing, VNC), протокол удаленной видеопамяти (Remote Frame Buffer), HTML и т.д. Например, RDP иллюстративно определяет ряд механизмов обработки для кодирования клиентского ввода (например, перемещения мыши, ввода с клавиатуры и т.д.) в блоки протокольных данных для предоставления на удаленное вычислительное устройство, и соответствующие механизмы для отправки обновлений растровых изображений и информации низкоуровневого интерфейса обратно на клиентское устройство. В качестве другого примера, протокол HTML иллюстративно обеспечивает механизм для предоставления файлов, определяющих информацию интерфейса и содержащих указатели ресурсов от сервера к клиенту, и соответствующий механизм для клиентского вычислительного устройства для предоставления запросов дополнительных файлов и ресурсов на сервер. В одном варианте воплощения NCC POP 142 может предоставлять первоначальное сообщение на клиентское вычислительное устройство 102 после определения коммуникационного протокола удаленного сеанса. Это первоначальное сообщение может позволить клиентскому вычислительному устройству 102 подготовиться к приему сообщения с выбранным коммуникационным протоколом удаленного сеанса, и, при наличии ряда коммуникационных протоколов удаленного сеанса, подобных HTTP, клиентское вычислительное устройство может отправить первоначальный запрос ресурса на экземпляр сеанса просмотра, работающий на NCC POP 142.
[77] Конфигурация сеанса удаленного просмотра может определять, что различные действия обработки для отображения части сетевого контента требуется выполнить на удаленном вычислительном устройстве, таком как NCC POP 142, а не на клиентском вычислительном устройстве 102. Сетевой контент, частично (или полностью) обрабатываемый провайдером распределенных вычислений, может упоминаться как результат обработки. Как обсуждается ниже, разделение действий обработки может быть обусловлено или связано с коммуникационным протоколом удаленного сеанса, используемым для обмена данными и вводимой клиентом информацией между NCC POP 142 и клиентским вычислительным устройством 102.
[79] NCC POP 142 может основывать свое определение конфигурации сеанса удаленного просмотра на любом количестве факторов, включая, но не ограничиваясь ими, одну или более характеристик одного или более запрошенных ресурсов, контент-провайдера 104 или сервис-провайдера CDN 106, одну или более характеристик адреса контента или домена, одну или более характеристик клиентского вычислительного устройства 102, браузера или приложения, пользователя, одну или более характеристик NCC POP 142 или одну или более характеристик сети или сетевого подключения и т.д. Характеристики запрашиваемых ресурсов могут включать, но не ограничиваются ими, формат данных, тип контента, размер, требования к обработке, требования по времени ожидания ресурса, количество или тип интерактивных элементов, риск для безопасности, предпочтение связанного пользователя, сетевой адрес, сетевой домен, связанный контент-провайдер и т.д. Характеристики контент-провайдера 104, сервис-провайдера CDN 106, вычислительного устройства 102 или NCC POP 142 могут включать, но не ограничиваются ими, вычислительную мощность, память, устройство хранения данных, топологическое описание сети (например, доступная полоса пропускания или задержка), физическое или логическое местоположение, ожидаемая стабильность или опасность возникновения неисправности, профиль программного или аппаратного обеспечения, имеющиеся ресурсы (например, объем доступной памяти или вычислительная мощность, или количество одновременно открытых программных приложений) и т.д. NCC POP 142 может дополнительно учитывать предполагаемые угрозы безопасности или риски, связанные с частью контента или доменом, настройками клиентского вычислительного устройства или контент-провайдера, стоимостью вычислительных или сетевых ресурсов (например, финансовыми расходами на обработку или обеспечение пропускной способности, использование ресурсов и т.д.), заданными предпочтениями или выбранной информацией, любыми дополнительными затратами вычислительных ресурсов, требуемыми для определенной конфигурации удаленного сеанса просмотра, статусом кэша (например, кэшированы ли определенные ресурсы на NCC POP 142, на клиентском вычислительном устройстве 102 или на другом сетевом хранилище данных, связанном с провайдером распределенных вычислений), ожидаемой задержкой или временем, необходимым для получения запрошенного сетевого контента, предпочитаемым контент-провайдером или соглашениями с контент-провайдером для конкретной конфигурации сеанса удаленного просмотра или уровня сервиса, конкретной конфигурацией сеанса удаленного просмотра, используемой для другого (или текущего) сеанса просмотра того же пользователя, или любым другим фактором.
[80] В некоторых вариантах воплощения NCC POP 142 может основывать определение конфигурации сеанса удаленного просмотра на прошлом поведении или практике. Например, NCC POP 142, определивший конфигурацию сеанса удаленного просмотра для конкретного ресурса в прошлом, может автоматически выбрать ту же конфигурацию сеанса удаленного просмотра, если ресурс запрашивается тем же (или потенциально отличным) пользователем. В качестве другого примера, пользователю, который имеет историю с частым доступом к веб-сайтам с повышенными требованиями по обработке, автоматически может быть назначена конфигурация сеанса удаленного просмотра, которая выполняет большую часть обработки на NCC POP 142. В других вариантах воплощения NCC POP 142 может основывать определение конфигурации сеанса удаленного просмотра на предсказании будущего поведения. Например, NCC POP 142 может основывать определение конфигурации сеанса удаленного просмотра для определенного ресурса на анализе последних определений, сделанных для конкретного веб-сайта, сетевого домена или совокупности связанных с ними ресурсов. Контент-провайдер, который обычно предоставляет тяжеловесные веб-страницы с видео, может быть связан с конфигурацией сеанса удаленного просмотра, которая делает акцент на качестве видеоизображения на клиентском вычислительном устройстве 102. В качестве иллюстрации, анализ истории и прогнозы на будущее могут рассматриваться как один или более из целого ряда факторов, на которых основывается способ определения конфигурации сеанса удаленного просмотра, или могут быть определяющими при принятии решений. Например, как только NCC POP 142 определяет конфигурацию сеанса удаленного просмотра для определенного контент-провайдера, он может пропустить процесс определения конфигурации сеанса удаленного просмотра для любых будущих ресурсов, обслуживаемых контент-провайдером. В качестве иллюстрации, NCC POP 142 может переопределить конфигурацию сеанса удаленного просмотра, которая будет связана с контент-провайдером, по истечении определенного периода времени или после того, как NCC POP 142 идентифицирует или определит изменение в контенте, обслуживаемом контент-провайдером.
[81] В других вариантах воплощения сетевой ресурс, веб-сайт, сетевой домен, контент-провайдер или другой сетевой объект может определить или иначе запросить использование конкретной конфигурации сеанса удаленного просмотра в теге ресурса, метаданных или другой связи с NCC POP 142. NCC POP 142 может рассматривать запрос как определенный или может рассмотреть запрос в качестве одного из нескольких факторов, которые будут приниматься во внимание при принятии решений.
[83] В качестве дополнительного примера, NCC POP 142, установивший соединение с клиентским вычислительным устройством 102 с крайне ограниченной вычислительной мощностью, может выбрать для использования конфигурацию сеанса удаленного просмотра, которая требует очень мало вычислений со стороны клиентского вычислительного устройства, например, используя RDP для передачи результатов, обработанных NCC POP 142. И наоборот, NCC POP 142, предоставляющий очень интерактивную веб-страницу, может выбрать для использования конфигурацию сеанса удаленного просмотра, позволяющую клиентскому вычислительному устройству 102 обрабатывать пользовательские взаимодействия локально, чтобы сохранить быстроту реагирования интерфейса, например, с помощью HTML, для передачи в основном необработанных данных. В качестве еще одного примера, NCC POP 142 может основывать определение конфигурации сеанса удаленного просмотра на настройках, предоставляемых клиентским вычислительным устройством 102. Клиентское вычислительное устройство 102 может иллюстративно включать настройки для конфигурации сеанса удаленного просмотра в первоначальный запрос сеанса просмотра или в любое другое время. NCC POP 142 может использовать эти настройки в качестве альтернативы или в дополнение к любому другому фактору или определению метрики. В качестве иллюстрации, предоставление возможности клиентскому вычислительному устройству 102 устанавливать или оказывать влияние на выбор конфигурации сеанса удаленного просмотра позволяет NCC POP 142 учитывать пользовательские настройки при определении конфигурации сеанса удаленного просмотра. Например, пользователь, обеспокоенный временем первоначальной загрузки страницы, может предпочесть использование конфигурации сеанса удаленного просмотра сеансу удаленной обработки значительного объема и использование коммуникационного протокола удаленного сеанса RDP, в то время как пользователь, желающий сохранить максимально отзывчивый интерфейс, может предпочесть использование конфигурации сеанса удаленного просмотра, которая выполняет большую часть обработки на клиентском вычислительном устройстве 102, например, с использованием коммуникационного протокола удаленного сеанса HTML.
[84] В качестве иллюстрации, NCC POP 142 может основывать определение конфигурации удаленного просмотра на любом факторе или комбинации факторов. Например, NCC POP 142 может выбрать конфигурацию сеанса удаленного просмотра на основе одного фактора или может назначать вес одному или более факторов при выполнении определения. В некоторых вариантах воплощения способ определения NCC POP 142 может меняться в зависимости от одного или более факторов, описанных выше. Например, NCC POP 142, установивший соединение с клиентским вычислительным устройством 102 по сети с избытком неиспользованной полосы пропускания, может придать малый вес таким факторам как сетевые требования удаленного сеанса просмотра, и может придать больший вес таким факторам как время ожидания взаимодействия со страницей, в то время как NCC POP 142, установивший соединение с клиентским вычислительным устройством 102 по сети с ограниченной полосой пропускания, может придать более высокий вес факторам, связанным с производительностью протокола сеанса удаленного просмотра в сети.
[86] Хотя выбор конфигурации сеанса удаленного просмотра иллюстративно изображен здесь как происходящий после получения NCC POP 142 всех сетевых ресурсов и связанного с ними встроенного контента, специалисту в данной области техники будет понятно, что выбор конфигурации сеанса удаленного просмотра может выполняться в любое время. Например, NCC POP 142 может выбрать конфигурацию сеанса удаленного просмотра после приема нового запроса сеанса просмотра или соответствующей информации от клиентского вычислительного устройства, может выбрать конфигурацию сеанса удаленного просмотра после получения сетевого ресурса, но до получения любых связанных встроенных ресурсов, или в любое другое время. В некоторых вариантах воплощения NCC POP 142 может перейти к новой конфигурации сеанса удаленного просмотра в некоторый момент времени, следующий за получением клиентским вычислительным устройством 102 первоначального результата обработки. В качестве иллюстрации, выбор NCC POP 142 новой конфигурации сеанса удаленного просмотра может произойти автоматически через определенный период времени или после события или в ответ на изменение условий сети, загрузочных или вычислительных ресурсов NCC POP 142 или клиентского вычислительного устройства 102 или в результате воздействия любого другого фактора, описанного выше как потенциально влияющего на выбор конфигурации сеанса удаленного просмотра. В качестве иллюстрации, NCC POP 142, работающий с другими типами или форматами информации, может выбрать протокол удаленного сеанса на основе любого количества подобных факторов. Например, специалисту в данной области техники будет понятно, что подобная схема может быть разработана для обработки изображений, видео, аудио, информации базы данных, проектных 3d-данных или любого другого формата файла или типа данных, известного в данной области техники.
[87] Клиентское вычислительное устройство 102, в различных вариантах воплощения, может дополнительно создать экземпляр подобной обработки просмотра последовательно или одновременно с запросом сеанса удаленного просмотра. В одном варианте воплощения клиентское вычислительное устройство 102 может создать экземпляр обычного сеанса локального просмотра, известного в данной области техники (например, предоставление запроса контента от браузера и обработка полученных ресурсов локально), в дополнение к одному или более экземплярам удаленного просмотра, выполняемым на NCC POP 142. В другом варианте воплощения на клиентское вычислительное устройство 102 могут быть переданы необработанные сетевые ресурсы от NCC POP 142. В качестве иллюстрации, сетевые ресурсы могут быть получены от одного или более контент-провайдеров, CDN или компонентов кэша через NCC POP 142. Ресурсы могут быть предоставлены на клиентское вычислительное устройство 102 для локальной обработки параллельно с экземпляром удаленного просмотра, выполняемого на NCC POP 142. В дополнительных вариантах воплощения провайдер распределенных вычислений или NCC POP 142 может инстанцировать любое количество новых экземпляров виртуальных машин и/или экземпляров браузера (или использовать существующие инстанцированные экземпляры) для обработки ресурсов и/или отправки результатов обработки на клиентское вычислительное устройство 102 в параллельном режиме. В качестве иллюстрации, сеанс локального просмотра на клиентском вычислительном устройстве 102 и экземпляр удаленного сеанса просмотра на NCC POP 142 могут выполняться параллельно.
[88] В одном варианте воплощения сеанс локального просмотра, выполняемый на клиентском вычислительном устройстве 102, может получить необработанный контент (например, HTML веб-страницы, встроенный контент и другие сетевые ресурсы) от NCC POP 142 в ответ на запрос сеанса просмотра. В качестве иллюстрации, контент может быть получен NCC POP 142 от контент-провайдера, CDN или из кэша в ответ на запрос сеанса просмотра. Необработанный контент, предоставляемый NCC POP 142, может включать весь контент, связанный с запросом сеанса просмотра, или может дополнять контент, имеющийся в кэше клиентского вычислительного устройства, полученный от контент-провайдера или CDN или полученный от какого-либо другого источника. В одном варианте воплощения клиентское вычислительное устройство 102 может получать весь запрошенный контент из локального кэша и может не получать никаких необработанных ресурсов или контента от NCC POP 142. После получения необработанного контента клиентское вычислительное устройство 102 может обрабатывать запрошенный контент параллельно с удаленным сеансом просмотра, выполняемым на NCC POP 142. Например, так как сеанс локального просмотра, выполняемый на клиентском вычислительном устройстве 102, обрабатывает запрошенный контент, удаленный сеанс просмотра, выполняемый на NCC POP 142, может обрабатывать тот же самый контент, по существу, в то же самое время. После того, как NCC POP 142 выполнит набор действий по обработке контента для генерации результата обработки (например, как указано в определенной конфигурации сеанса удаленного просмотра), NCC POP 142 может предоставить результат обработки на клиентское вычислительное устройство 102.
[89] С целью иллюстрации, для клиентского вычислительного устройства 102 может потребоваться большее время загрузки для получения и обработки запрошенных сетевых ресурсов, чем для экземпляра сеанса просмотра, работающего на NCC POP 142. Например, NCC POP 142 может получать и обрабатывать контент быстро из-за его положения в сети и относительной вычислительной мощности локального клиентского вычислительного устройства по сравнению с NCC POP 142. Даже если NCC POP 142 предоставляет на клиентское вычислительное устройство 102 весь запрашиваемый сетевой контент, клиентское вычислительное устройство 102 может все же получать результат обработки от NCC POP 142 до того, как сеанс локального просмотра полностью завершит обработку запрошенных ресурсов. Клиентское вычислительное устройство 102 может завершить любые дальнейшие этапы обработки и отображение полученного результата обработки до завершения локальной обработки и отображения контента. В качестве иллюстрации, это может позволить клиентскому вычислительному устройству 102 воспользоваться более быстрой загрузкой контента NCC POP 142 по отношению к обычному локальному сеансу просмотра. Перед тем, как сеанс локального просмотра завершит обработку всех запрошенных ресурсов, браузер может обрабатывать любые пользовательские взаимодействия локально и/или удаленно, как описано в соответствии с ФИГ.5 и 11 ниже.
[90] После того, как сеанс локального просмотра полностью получит и обработает ресурсы, соответствующие запрошенному контенту, вычислительное устройство 102 может определить, следует ли продолжать отображать результаты, полученные от NCC POP 142 (и обрабатывать пользовательские взаимодействия на NCC POP 142), с использованием определенной конфигурации сеанса удаленного просмотра или переключиться на обработку пользовательских взаимодействий локально. Переключение к локальной обработке пользовательских взаимодействий может включать замену отображаемого представления запрошенных ресурсов на основе результата обработки, полученного от NCC POP 142 с локальным отображением запрошенных ресурсов. Например, браузер может отобразить представление веб-страницы, соответствующее результату обработки от NCC POP 142 (например, информацию отображения RDP, представляющего отображаемую страницу), пока браузер не закончит локальную обработку и отображение веб-страницы. Браузер может затем заменить представление от NCC POP 142 на локально отрисованное представление веб-страницы. В качестве иллюстрации, замена одного представления другим представлением может быть очевидной для пользователя. Например, локальные и NCC POP 142 представления веб-страницы могут быть одинаковыми или, по существу, идентичными. В одном из вариантов воплощения, когда отображается NCC POP 142 представление веб-страницы, браузер может отправить различные пользовательские взаимодействия с отображаемой страницей на NCC POP 142 для обработки. При отображении локально отрисованной версии веб-страницы, пользовательские взаимодействия могут быть обработаны локально на браузере. В качестве иллюстрации, определение, какое именно представление запрашиваемых ресурсов отобразить (например, локальное или от NCC POP 142), может основываться на любом из тех же факторов, которые были описаны со ссылкой на определение протокола сеанса удаленного просмотра выше.
[91] В одном варианте воплощения клиентское вычислительное устройство 102 может перейти к обработке пользовательских взаимодействий локально, как только локальные ресурсы будут полностью загружены. В качестве иллюстрации, экземпляр сеанса удаленного просмотра, работающий на NCC POP 142, может прекратить свою работу после переключения на локальную обработку или экземпляр сеанса удаленного просмотра может поддерживаться в качестве резервного на случай зависания или сбоя в отношении сеанса локального просмотра. Например, клиентское вычислительное устройство 102 может обрабатывать данные пользовательского взаимодействия локально, а также передавать данные удаленного пользовательского взаимодействия на NCC POP 142 в соответствии с выбранной конфигурацией сеанса удаленного просмотра. Данные удаленного пользовательского взаимодействия могут быть использованы NCC POP 142 для сохранения полного экземпляра удаленного сеанса просмотра параллельно с локальной обработкой просмотра, выполняемой браузером на клиентском вычислительном устройстве 102. Пока в сеансе локального просмотра продолжают обрабатываться пользовательские взаимодействия, NCC POP 142 может либо воздержаться от отправки обновленных результатов обработки, либо отправить обновленные результаты обработки, игнорируемые клиентским вычислительным устройством 102. Если обнаружена проблема с сеансом локального просмотра на клиентском вычислительном устройстве 102, обновленные результаты обработки могут быть предоставлены на клиентское вычислительное устройство 102 от NCC POP 142 для обработки и отображения вместо сеанса локального просмотра. В качестве иллюстрации, этот переход от сеанса локального просмотра к удаленной обработке может быть очевидным для пользователя. В отдельных вариантах воплощения клиентское вычислительное устройство 102 может перейти от сеанса локального просмотра к экземпляру сеанса удаленного просмотра на основе факторов, отличных от зависания или сбоя на локальном браузере. Например, клиентское вычислительное устройство 102 или компонент распределенных вычислений и хранения данных 107 могут выбрать между удаленным и локальным сеансом просмотра на основе любого из факторов, перечисленных в отношении определения протокола сеанса удаленного просмотра, приведенного выше. [92] В другом варианте воплощения клиентское вычислительное устройство 102 может продолжить обработку и отобразить обновленные результаты обработки от NCC POP 142 даже после того, как сеанс локального просмотра полностью загрузит запрошенный контент. Клиентское вычислительное устройство 102 может завершить сеанс локального просмотра или может запустить сеанс локального просмотра параллельно как способ резервного копирования в противоположность примеру, приведенному выше. Следует понимать, что хотя в сеансе локального просмотра, описанном здесь с целью иллюстрации, загрузка осуществляется медленнее, чем для экземпляра сеанса удаленного просмотра, в некоторых вариантах воплощения в сеансе локального просмотра контент может загружаться быстрее, чем в сеансе удаленного просмотра, и в этом случае браузер может обрабатывать пользовательские взаимодействия локально, пока процесс удаленного просмотра полностью не загрузит запрошенный контент. В некоторых вариантах воплощения клиентское вычислительное устройство 102 может отображать и обрабатывать пользовательские взаимодействия каким бы ни был сеанс просмотра, локальным или удаленным, загружая в первую очередь запрошенный контент.
[93] В различных других вариантах воплощения провайдер распределенных вычислений 107 может инстанцировать несколько экземпляров сеансов удаленного просмотра, чтобы работать параллельно в дополнение или в качестве альтернативы по отношению к инстанцированию сеанса локального просмотра. В качестве иллюстрации, эти параллельно работающие экземпляры сеанса просмотра могут использовать любой из подобных или отличных протоколов сеанса удаленного просмотра и могут выступать в качестве резервных копий данных способом, описанным выше в отношении сеанса локального просмотра, или могут быть использованы и выбраны в качестве альтернативы для того, чтобы максимизировать производительность браузера на клиентском вычислительном устройстве 102. Например, в ответ на один или более запросов сеанса просмотра, провайдер распределенных вычислений 107 может инстанцировать экземпляр сеанса просмотра, работающий на первом NCC POP и использующий протокол RDP, а также экземпляр сеанса просмотра, работающий на втором NCC POP, использующий протокол X-Windows. Клиентское вычислительное устройство 102 или провайдер распределенных вычислений 107 может определить, какой экземпляр сеанса просмотра и протокол должны быть использованы на основе производительности или соображений использования ресурсов, как описано выше в отношении определения протокола сеанса удаленного просмотра.
[94] Согласно ФИГ.9, в блоке 918 провайдер распределенных вычислений 107 может обработать полученный контент, включая один или более запрошенных сетевых ресурсов и встроенных сетевых ресурсов, в соответствии с определенной конфигурацией сеанса удаленного просмотра для генерации первоначального результата обработки. В блоке 920 провайдер распределенных вычислений 107 может предоставить первоначальный результат обработки клиенту для дальнейшей обработки и отображения в области отображения контента браузера. В продолжение примера, ниже, со ссылкой на ФИГ.10, иллюстративно описан алгоритм взаимодействия с клиентом в новом сеансе просмотра 1000, реализованном на клиентском вычислительном устройстве 102. В блоке 922 алгоритм нового сеанса просмотра 900 заканчивается.
[95] На ФИГ.10 представлена блок-схема, иллюстрирующая алгоритм взаимодействия с клиентом в новом сеансе просмотра 1000, реализованный на клиентском вычислительном устройстве 102. Новый алгоритм взаимодействия в новом сеансе просмотра 1000 начинается в блоке 1002 в ответ на событие или запрос пользователя, приводящий к загрузке браузера для просмотра сетевого контента на клиентском вычислительном устройстве 102. В блоке 1004 клиентское вычислительное устройство загружает локально управляемые компоненты браузера, включая все локальные компоненты интерфейса. Как описано выше со ссылкой на фиг 5 и 7, локальные компоненты интерфейса могут включать панели инструментов, меню, кнопки или другие элементы управления пользовательского интерфейса, управляемые и контролируемые программным приложением браузера или любым другим процессом, выполняемым или осуществляемом локально на клиентском вычислительном устройстве. В блоке 1006 клиентское вычислительное устройство 102 предоставляет запрос нового экземпляра сеанса просмотра провайдеру распределенных вычислений 107. С точки зрения пользователя клиентского вычислительного устройства, запрос нового сеанса просмотра соответствует запросу, предназначенному для передачи запроса одному или более соответствующим контент-провайдерам 104. В другом варианте воплощения запрос нового сеанса может соответствовать запросу загрузки файла или другого документа (например, запрос на загрузку изображения в приложение для редактирования фотографий и т.д.). В качестве иллюстрации, запрос может быть сгенерирован автоматически в результате загрузки браузера (например, запрос страницы по умолчанию или «домашней» страницы) или может быть сгенерирован в результате перехода пользователя по ссылке или ввода сетевого адреса в адресной строке. Как показано в отношении ФИГ.2, сначала передается запрос сеанса просмотра провайдеру распределенных вычислений 107. В иллюстративном варианте воплощения провайдер распределенных вычислений 107 использует информацию с API для приема запросов сеанса просмотра от клиентского вычислительного устройства 102.
[96] Запрос сеанса просмотра может включать любое количество элементов данных или информации, включающей, но не ограничивающейся ими, информацию, связанную с пользователем, информацию, связанную с клиентским вычислительным устройством 102 или программным обеспечением на клиентском вычислительном устройстве (например, информацию аппаратного или программного обеспечения, физического или логического местоположения устройства и т.д.), информацию, связанную с сетью 108, предпочтениями пользователя или браузера (например, требуемый протокол удаленного сеанса просмотра, список предпочтений, древовидную схему решений или другую информацию), информацию, связанную с провайдером распределенных вычислений 107, информацию, связанную с одной или более частями запрашиваемого сетевого контента (например, сетевой адрес сетевого ресурса) и т.д. Например, запрос сеанса просмотра от клиентского вычислительного устройства 102 может включать информацию, идентифицирующую спецификацию аппаратного обеспечения конкретного клиентского устройства или уровень производительности, время ожидания и данные о пропускной способности аппаратного обеспечения, связанные с недавними запросами контента, требуемый уровень безопасности для обработки различных типов контента, предопределенный список предпочтений протоколов сеанса удаленного просмотра и один или более сетевых адресов, соответствующих запрошенным сетевым ресурсам, а также другую информацию. В другом примере запрос сеанса просмотра может включать информацию, идентифицирующую разрешение экрана клиентского вычислительного устройства 102, соотношение сторон, или область отображения браузера в запросе сеанса просмотра может позволить провайдеру распределенных вычислений 107 настроить обработку сетевого контента для отображения на клиентском вычислительном устройстве. Как было описано ранее, запрос сеанса просмотра может включать информацию о сетевом адресе, соответствующем запрошенному сетевому ресурсу, который может быть представлена в любой форме, включая, но не ограничиваясь ими, адрес по Интернет-протоколу ("IP-адрес"), URL-адрес, адрес управления доступом к среде ("MAC- адрес") и т.д. В одном варианте воплощения запрос нового экземпляра сеанса просмотра может соответствовать получению провайдером распределенных вычислений запроса нового экземпляра сеанса просмотра в блоке 904 согласно ФИГ.9 выше.
[97] В блоке 1008 клиентское вычислительное устройство 102 получает первоначальный результат обработки от провайдера распределенных вычислений 107. В качестве иллюстрации, формат и данные, включаемые в первоначальный результат обработки, могут варьироваться в зависимости от конфигурации сеанса удаленного просмотра, выбранной провайдером распределенных вычислений 107. В одном варианте воплощения первоначальный результат обработки может включать или предпосылать данные, информирующие клиентское вычислительное устройство 102 о выборе конфигурации сеанса удаленного просмотра и/или установлении соединения по коммуникационному протоколу удаленного сеанса, соответствующему выбранной конфигурации сеанса удаленного просмотра. Как обсуждалось выше со ссылкой на ФИГ.8 и 9, полученный первоначальный результат обработки может включать запрошенный контент за одно или более действий обработки, выполняемых провайдером распределенных вычислений 107. После получения первоначального результата обработки клиентское вычислительное устройство 102 может выполнять любые оставшиеся действия обработки по первоначальному результату обработки в блоке 1010.
[98] В блоке 1012 клиентское вычислительное устройство 102 отображает контент, соответствующий обработанному первоначальному результату обработки. Например, клиентское вычислительное устройство 102 может отображать обработанного клиента в области отображения контента 702 браузера 700, как описано на ФИГ.7 выше. В одном варианте воплощения результат обработки может включать только данные отображения, соответствующие контенту, отображаемому браузером, и может не включать отображаемые данные, соответствующие, например, элементам интерфейса экземпляра браузера на NCC POP 142, рабочему столу экземпляра виртуальной машины, соответствующему сеансу просмотра или любому другому пользовательскому интерфейсу NCC POP 142. Например, NCC POP 142 может обрабатывать веб-страницу и связанный контент для отображения через RDP в экземпляре браузера, работающем на экземпляре виртуальной машины на NCC POP 142. Экземпляр браузера может иметь один или более элементов интерфейса, таких как панель инструментов, меню, полосы прокрутки и т.д. в дополнение к отображаемой веб-странице. NCC POP 142 может отправлять результат обработки RDP, соответствующий только отображаемой веб-странице, без каких-либо элементов интерфейса, связанных с браузером. В качестве иллюстрации, включение результата обработки RDP, соответствующего только отображаемой веб-странице, может позволить браузеру на экземпляре клиентского вычислительного устройства 102 отображать веб-страницу, собирая результат обработки RDP в области отображения контента браузера без какой-либо дополнительной обработки. В другом варианте воплощения результат обработки RDP может включать полный рабочий стол виртуальной машины и окно браузера, соответствующее полному интерфейсу, отображаемому на экземпляре сеанса просмотра NCC POP 142. Клиентское вычислительное устройство может автоматически определять область результата обработки RDP, соответствующую запрашиваемому контенту, и может отображать только эту область в области отображения контента браузера.
[99] В блоке 1014 клиентское вычислительное устройство 102 обрабатывает локальные и удаленные пользовательские взаимодействия. Иллюстративный алгоритм для обработки пользовательских взаимодействий приведен ниже со ссылкой на ФИГ.11. В блоке 1016 алгоритм заканчивается. В качестве иллюстрации, экземпляр сеанса просмотра, инстанцированный контент-провайдером распределенных вычислений 107, может завершиться, если окно браузера или область отображения контента закрывается, может завершиться, если протокол сеанса удаленного просмотра заменяется параллельной обработкой на клиентском вычислительном устройстве 102, или может завершиться в соответствии с установкой таймера или другим событием. В качестве иллюстрации, если сеанс просмотра автоматически прекращен в связи с тайм-аутом, но связанный контент по-прежнему отображается в браузере на клиентском вычислительном устройстве 102, последующие попытки пользователя взаимодействовать с контентом могут привести к созданию нового запроса сеанса просмотра, предоставленного сервис-провайдеру распределенных вычислений и хранения данных 107, для начала нового сеанса просмотра, соответствующего последнему состоянию прекращенного сеанса. В качестве иллюстрации, завершение сеанса удаленного просмотра после тайм-аута может позволить провайдеру распределенных вычислений и хранения данных 107 сохранить вычислительные ресурсы NCC POP. В одном варианте воплощения этот процесс может быть очевидным для пользователя на клиентском вычислительном устройстве 102, даже если сеанс удаленного просмотра был завершен в наступающий период.
[100] ФИГ.11 представляет собой иллюстративную блок-схему алгоритма способа пользовательского взаимодействия 1100, осуществляемого клиентским вычислительным устройством 102. Алгоритм способа пользовательского взаимодействия 1100 начинается в блоке 1102 в ответ на взаимодействие с пользователем. В качестве иллюстрации, алгоритм способа пользовательского взаимодействия 1100 может начаться после отображения контента в области отображения контента интерфейса браузера. Например, алгоритм способа пользовательского взаимодействия 1100 может соответствовать блоку 1014 по ФИГ.10, упомянутому выше.
[101] В качестве иллюстрации, отображаемый контент может иметь один или более интерактивных элементов, таких как формы, кнопки, анимации и т.д. Пользовательское взаимодействие с этими интерактивными элементами может потребовать обработки и отображения обновленного контента в области отображения контента. Например, при выборе элемента в выпадающем меню на веб-странице может потребоваться обработка и может измениться конфигурация или внешний вид веб-страницы или встроенных ресурсов. В качестве иллюстрации, обработка, требуемая при пользовательском взаимодействии с отображаемым контентом, может быть выполнена как локальное пользовательское взаимодействие на клиентском вычислительном устройстве 102 или как удаленное пользовательское взаимодействие на NCC POP 142, в зависимости от используемой конфигурации сеанса удаленного просмотра. Например, если в конфигурации сеанса удаленного просмотра используется значительный объем локальной обработки (например, отправки необработанных файлов посредством HTML), пользовательские взаимодействия с отображаемым контентом обычно могут обрабатываться как локальные пользовательские взаимодействия на клиентском вычислительном устройстве 102. В качестве иллюстрации, обработка пользовательских взаимодействий с отображаемым контентом как локальных пользовательских взаимодействий на клиентском вычислительном устройстве 102 может позволить достичь лучшего времени реагирования и меньших задержек при простых пользовательских взаимодействиях (например, выборе селективной кнопки или вводе текста в поле), так как данные взаимодействия, соответствующие взаимодействию, не должны отправляться в NCC POP 142 для обработки.
[102] В качестве другого примера, если конфигурация сеанса удаленного просмотра с использованием удаленной обработки контента значительного объема (например, отправки обработанных растровых данных посредством RDP) используется в качестве конфигурации сеанса удаленного просмотра, все пользовательские взаимодействия с отображаемым контентом могут быть обработаны как удаленные пользовательские взаимодействия. Например, пользовательский ввод (например, данные ввода с клавиатуры и позиции курсора) могут быть инкапсулированы в блоки данных RDP протокола и переданы по сети 108 на NCC POP 142 для обработки. В качестве иллюстрации, NCC POP 142 может применять пользовательские взаимодействия к сетевому контенту и передавать результаты обработки, состоящие из обновленных растровых изображений и данных интерфейса, соответствующих обновленному представлению контента, обратно на клиентское вычислительное устройство 102. В качестве иллюстрации, обработка пользовательских взаимодействий с отображаемым контентом как удаленных пользовательских взаимодействий на NCC POP 142 может иметь негативное влияние на отзывчивость интерфейса, так как данные должны быть переданы по сети, а их передача ограничивается задержкой сети; однако пользовательские взаимодействия, которые требуют существенного объема обработки, могут обрабатываться лучше, когда они обрабатываются как удаленные пользовательские взаимодействия, так как время ожидания обработки на NCC POP 142 может быть существенно ниже, чем время ожидания обработки на клиентском вычислительном устройстве 102.
[103] В дополнение к области отображения контента для отображения сетевого контента браузер может иметь один или более локальных компонентов интерфейса, таких как панели инструментов, меню, кнопки или другие элементы управления пользовательским интерфейсом. Взаимодействия с локальными компонентами интерфейса могут рассматриваться как локальные пользовательские взаимодействия или удаленные пользовательские взаимодействия в зависимости от обработки, требуемой при взаимодействии, и конфигурации сеанса удаленного просмотра, как далее изображено на иллюстративной ФИГ. 7. Например, некоторые локальные компоненты интерфейса могут управляться локально с помощью кода браузера, работающего на клиентском вычислительном устройстве, в то время как другие локальные компоненты интерфейса могут иметь один или более локально управляемых аспектов (например, нажатие кнопки обратной связи, перерисовка полосы прокрутки и т.д.) и один или более удаленно управляемых аспектов, рассматриваемых как удаленные пользовательские взаимодействия (например, обновление страницы, запрос страницы по адресу в адресной строке и т.д.).
[104] В блоке 1104 клиентское вычислительное устройство 102 принимает пользовательское взаимодействие от пользователя. Это пользовательское взаимодействие может быть взаимодействием с локальными компонентами интерфейса, как описано в соответствии с ФИГ.7 выше, или может быть взаимодействием с любыми интерактивными элементами контента, отображаемыми в области отображения контента браузера, такими как поля форм, кнопки, анимации и т.д. Пользовательское взаимодействие с этими локальными компонентами интерфейса или интерактивными элементами отображаемого контента может потребовать локальной и/или удаленной обработки в зависимости от природы компонента или элемента и разделения обработки, определенного конфигурацией сеанса удаленного просмотра, как описано в соответствии с ФИГ.7 выше. В блоке 1106 клиентское вычислительное устройство 102 определяет требования к обработке взаимодействия для полученного пользовательского взаимодействия. В блоке принятия решения 1108, если пользовательское взаимодействие имеет локальные аспекты (например, нажатие кнопки обратной связи, изменение локального состояния браузера, обработка элемента контента на клиентском вычислительном устройстве и т.д.), алгоритм от блока 1102 переходит к блоку 1110 для обработки локального аспекта или аспектов пользовательского взаимодействия на клиентском вычислительном устройстве 102, а затем обновляет локальные компоненты интерфейса в блоке 1112. В качестве иллюстрации, и как обсуждалось выше, аспекты взаимодействия и обновление компонентов интерфейса и элементов локально позволяют браузеру обеспечить быстро реагирующий пользовательский интерфейс и контент. После обработки локального аспекта(ов) пользовательского взаимодействия или, если пользовательское взаимодействие не имеет локальных элементов (например, пользовательское взаимодействие с элементом контента, отображаемым в области отображения контента, при обработке конфигурации сеанса удаленного просмотра полностью на серверной стороне и использовании коммуникационного протокола удаленного сеанса RDP), алгоритм от блока 1102 переходит к блоку принятия решения 1114. Если пользовательское взаимодействие имеет удаленные аспекты, для которых требуется обработка, алгоритм от блока 1102 переходит к блоку 1116 и предоставляет данные удаленного пользовательского взаимодействия провайдеру распределенных вычислений 107. В качестве иллюстрации, при наличии мощной конфигурации сеанса удаленного просмотра стороны сервера, использующей коммуникационный протокол удаленного сеанса RDP, данные удаленного пользовательского взаимодействия могут включать данные ввода, такие как позиция курсора или ввод с клавиатуры, инкапсулированные в одном или более блоков данных протокола RDP. В некоторых вариантах воплощения конфигураций сеанса удаленного просмотра с использованием RDP или других коммуникационных протоколов удаленного сеанса, отдельные аспекты данных удаленного пользовательского взаимодействия, такие как позиции курсора, могут предоставляться провайдеру распределенных вычислений 107 в непрерывном режиме, в то время как в других вариантах воплощения конфигураций сеанса удаленного просмотра данные удаленного пользовательского взаимодействия могут быть предоставлены провайдеру распределенных вычислений 107, только если они связаны с пользовательским взаимодействием, которое требует удаленной обработки.
[105] В блоке 1118 клиентское вычислительное устройство 102 получает обновленный результат обработки от провайдера распределенных вычислений 107, причем провайдер распределенных вычислений 107 обрабатывает данные удаленного пользовательского взаимодействия для генерации обновленного представления контента. В блоке 1120 клиентское вычислительное устройство 102 выполняет любую дополнительную обработку, необходимую для обновленного результата обработки (в зависимости от конфигурации сеанса удаленного просмотра) и в блоке 1122 отображает обновленный результат обработки в области отображения контента браузера. В блоке 1124 алгоритм обработки пользовательского взаимодействия 1102 завершается. В качестве иллюстрации, алгоритм может быть выполнен повторно неограниченное количество раз в ответ на дальнейшие пользовательские взаимодействия с браузером и отображаемым контентом.
[106] В соответствии с ФИГ.12-14 будет проиллюстрировано взаимодействие между различными компонентами среды распределенных вычислений 100, показанной на ФИГ.1. В частности, ФИГ.12-14 иллюстрируют взаимодействие между различными компонентами среды распределенных вычислений 100 для создания и поддержания одного или более возобновляемых контекстов просмотра на провайдере распределенных вычислений 107. Для примера, однако, иллюстрация упрощена таким образом, что многие из компонентов, используемых для облегчения установления связи, не показаны. Специалисту в данной области техники будет понятно, что такие компоненты могут быть использованы и соответственно будут происходить дополнительные взаимодействия без отступления от сущности и объема настоящего изобретения.
[107] Согласно ФИГ.2, способ может начинаться с генерации и обработки запроса нового возобновляемого контекста просмотра от клиентского вычислительного устройства 102А провайдеру распределенных вычислений 107. В качестве иллюстрации, клиентское вычислительное устройство 102А может загрузить браузер для просмотра сетевого контента в ответ на событие или запрос пользователя. После того, как браузер будет загружен, браузер может быть настроен для запроса нового возобновляемого контекста просмотра. В различных вариантах воплощения запрос нового возобновляемого контекста просмотра может быть создан автоматически при загрузке браузера или может быть сгенерирован в результате события, такого как команда или запрос от пользователя клиентского вычислительного устройства. В других вариантах воплощения браузер может быть настроен для возможности генерации запроса доступа к имеющемуся возобновляемому контексту просмотра, инстанцированному провайдером распределенных вычислений, как описано в соответствии с ФИГ.4.
[108] Как показано на ФИГ.12, клиентское вычислительное устройство 102А и провайдер распределенных вычислений 107 могут обмениваться информацией о рабочей среде возобновляемого контекста просмотра. В качестве иллюстрации, информация о рабочей среде возобновляемого контекста просмотра может содержать любое количество типов информации, включая, но не ограничиваясь ими, конфигурационную информацию, идентифицирующую информацию, информацию о предпочтениях просмотра, информацию о действующих в настоящее время возобновляемых контекстах просмотра и т.д. В других вариантах воплощения информация о рабочей среде возобновляемого контекста просмотра может быть включена в запрос возобновляемого контекста просмотра или может быть заменена перед, после или одновременно с запросом возобновляемого контекста просмотра.
[109] Клиентское вычислительное устройство 102А может отправлять запрос возобновляемого контекста просмотра провайдеру распределенных вычислений 107. В иллюстративном варианте воплощения провайдер распределенных вычислений 107 использует информацию с прикладного программного интерфейса («API») для приема запросов возобновляемого контекста просмотра от клиентского вычислительного устройства 102. В одном из вариантов воплощения запрос возобновляемого контекста просмотра может включать запрос сеанса просмотра или другую информацию, идентифицирующую запрошенный контент, как описано в соответствии с ФИГ.2-6 выше.
[110] После получения запроса возобновляемого контекста просмотра провайдер распределенных вычислений 107 может выбрать NCC POP, такой как NCC POP 142, для обслуживания запроса возобновляемого контекста просмотра. Выбор ресурсов обработки и сетевых ресурсов и резервирование программного обеспечения в экземпляре NCC POP может быть выполнено, по меньшей мере частично, с целью оптимизации связи с контент-провайдерами 104 и клиентскими вычислительными устройствами 102, например, на основе информации о местоположении или производительности, включаемой в информацию о рабочей среде возобновляемого контекста просмотра или запрос возобновляемого контекста просмотра.
[111] Выбранный NCC POP 142 может генерировать соответствующий возобновляемый контекст просмотра на основе запроса возобновляемого контекста просмотра и любой информации о рабочей среде возобновляемого контекста просмотра, которой обмениваются клиентское вычислительное устройство 102А и провайдер распределенных вычислений 107. В качестве иллюстрации, инстанцирование нового экземпляра возобновляемого контекста просмотра может включать загрузку нового экземпляра виртуальной машины и/или экземпляра браузера на NCC POP 142, с резервированием или выделением устройства памяти, области памяти или кэша, времени процессора, пропускной способности сети или других вычислительных или сетевых ресурсов для нового возобновляемого контекста просмотра.
[112] Хотя это не показано здесь для ясности, после инстанцирования нового возобновляемого контекста просмотра на NCC POP 142, клиентское вычислительное устройство 102А может предоставить NCC POP 142 запросы новых сеансов просмотра или другие запросы, соответствующие запрашиваемому контенту. NCC POP 142 может создавать любое количество новых сеансов просмотра, соответствующих запросам новых сеансов просмотра, и/или запросов контента и обмениваться различной информацией сеанса просмотра с клиентским вычислительным устройством 102А. Например, NCC POP 142 может предоставить первоначальные результаты обработки на клиентское вычислительное устройство 102А и обменяться данными пользовательского взаимодействия и обновленными результатами обработки с клиентским вычислительным устройством 102А, как описано в соответствии с ФИГ. 2-6 выше. NCC POP 142 может дополнительно получать данные конфигурации браузера и контента, соответствующие изменениям в состоянии, конфигурации или предпочтениях браузера и отображения контента в нем. NCC POP 142 может обрабатывать данные конфигурации и информацию сеанса просмотра и может сохранять контент и информацию о состоянии в возобновляемом контексте просмотра. В качестве иллюстрации, новые сеансы просмотра, соответствующие запрошенному контенту, могут быть инстанцированы в том же NCC POP 142 как возобновляемый контекст просмотра или могут быть инстанцированы в любом другом NCC POP на основе любой величины производительности, стоимости или факторов предпочтения, как обсуждалось выше со ссылкой на ФИГ. 11. В различных вариантах воплощения сеанс просмотра может быть создан для каждого элемента контента, вкладки, окна, фрейма, совокупности контента или любой их комбинации, связанной с возобновляемым контекстом просмотра. В качестве иллюстрации, каждый сеанс просмотра может быть связан с той же или другой конфигурацией сеанса удаленного просмотра, как описано со ссылкой на ФИГ. 8-10 выше.
[113] В соответствии с ФИГ.11 раскрыта блок-схема среды доставки контента соответственно ФИГ.1, иллюстрирующая генерацию и обработку запроса для получения доступа к имеющемуся возобновляемому контексту просмотра с клиентского вычислительного устройства 102 В провайдеру распределенных вычислений 107. Как показано на ФИГ.11, второе клиентское вычислительное устройство 102 В может попытаться получить доступ к имеющемуся запросу возобновляемого контекста просмотра на провайдере распределенных вычислений 107 через сеть 108. В иллюстративном варианте воплощения провайдер распределенных вычислений 107 использует информацию с API для получения запросов возобновляемого контекста просмотра и информацию о рабочей среде возобновляемого контекста просмотра от клиентского вычислительного устройства 102 В.
[114] В качестве иллюстрации, вслед за созданием нового возобновляемого контекста просмотра, как описано выше со ссылкой на ФИГ.12, пользователь клиентского вычислительного устройства 102А может прекратить взаимодействие с отображаемым контентом или может иначе выйти из браузера, запущенного на клиентском вычислительном устройстве 102А. Например, пользователь может закрыть программное приложение браузера, работающее на клиентском вычислительном устройстве 102А, может выключить клиентское вычислительное устройство 102А или может просто отвлечься на другие дела. В одном варианте воплощения NCC POP 142 может поддерживать программное приложение браузера, связанное с возобновляемым контекстом просмотра даже после обрыва подключения к клиентскому вычислительному устройству 102А. В других вариантах воплощения NCC POP 142 может хранить данные, связанные с текущим состоянием возобновляемого контекста просмотра, включая данные отображения контента, контент или данные состояния сеанса, конфигурацию или данные о состоянии браузера и т.д.
[115] Пользователь клиентского вычислительного устройства 102А может впоследствии решить вернуться к более раннему возобновляемому контексту просмотра. В качестве иллюстрации, пользователь клиентского вычислительного устройства 102А может попытаться получить доступ к более раннему возобновляемому контексту просмотра через второе клиентское вычислительное устройство 102В, которое может включать различное аппаратное обеспечение, программное обеспечение или устройство доступа к сети с клиентского вычислительного устройства 102А. Хотя клиентское вычислительное устройство 102В описано здесь в качестве второго клиентского вычислительного устройства для целей примера, следует понимать, что все описания по этой фигуре могут быть применены для последующего доступа к возобновляемому контексту просмотра исходным клиентским вычислительным устройством 102А. Кроме того, хотя для целей примера пользователь клиентского вычислительного устройства 102В описывается таким же, как и для клиентского вычислительного устройства 102А, следует понимать, что в различных вариантах воплощения, имеющийся возобновляемый контекст просмотра может быть доступен для любой стороны, и может быть доступен на основе любого типа идентифицирующей информации, включая информацию браузера, информацию о пользователе (например, идентификатор (ID), логин или пароль), информацию об устройстве, идентификатор среды, идентификатор возобновляемого контекста просмотра и т.д.
[116] Запрос на осуществление доступа к возобновляемому контексту просмотра может быть создан при обмене информацией о рабочей среде возобновляемого контекста просмотра, как описано со ссылкой на ФИГ.12 выше. Обмен информацией о возобновляемом контексте просмотра может быть инициирован клиентским вычислительным устройством 102В при открытии пользователем нового окна браузера с новой областью отображения контента, открытии новой области отображения контента в существующем окне браузера (например, открытие новой вкладки в браузере), запросе нового сетевого контента в существующей области отображения контента (например, переход по ссылке на новый сетевой ресурс или ввод нового сетевого адреса в браузере) или любом другом пользовательском взаимодействии. В одном варианте воплощения информация о рабочей среде возобновляемого контекста просмотра, предоставляемая клиентским вычислительным устройством 102В провайдеру распределенных вычислений 107, может включать, но не ограничивается ими, информацию браузера, информацию о пользователе (например, идентификатор (ID), логин или пароль), информацию об устройстве, идентификатор среды, идентификатор возобновляемого контекста просмотра и т.д. В ответ на эту информацию идентификации провайдер распределенных вычислений 107 может предоставить на клиентское вычислительное устройство доступную информацию о сеансе, включая список доступных возобновляемых контекстов просмотра, связанных с информацией идентификации. В качестве иллюстрации, список доступных возобновляемых контекстов просмотра может соответствовать активным программным процессам или сохраненным данным на NCC POP 142, или любой другой комбинации NCC POP или устройств распределенных вычислений или хранения данных, связанных с провайдером распределенных вычислений 107.
[117] Клиентское вычислительное устройство 102 В может выбрать имеющийся возобновляемый контекст просмотра из списка доступных возобновляемых контекстов просмотра, предоставленных провайдером распределенных вычислений 107, и может передавать выбор возобновляемых контекстов просмотра провайдеру распределенных вычислений 107. Иллюстративный пользовательский интерфейс для выбора существующих возобновляемых контекстов просмотра приведен со ссылкой на ФИГ.15 ниже. Хотя это и не показано здесь для наглядности описания, при получении выбора возобновляемых контекстов просмотра, провайдер распределенных вычислений 107 может инициировать подключение клиентского вычислительного устройства 102 В к имеющемуся возобновляемому контексту просмотра на NCC POP 142. В одном из вариантов воплощения это может включать осуществление доступа к запущенному в данный момент программному приложению браузера или инициализацию нового программного приложения браузера на NCC POP 142 на основе ранее сохраненной информации возобновляемого контекста просмотра, такой как контент, состояния контента и/или состояния браузера. NCC POP 142 может создавать новые сеансы просмотра или осуществлять доступ к существующим сеансам просмотра, соответствующим контенту, связанному с возобновляемым контекстом просмотра, и может передавать первоначальные результаты обработки, соответствующие текущим состояниям контента, связанным с возобновляемым контекстом просмотра, и текущее состояние браузера, связанное с возобновляемым контекстом просмотра. Клиентское вычислительное устройство 102 В и NCC POP 142 могут начать обмен данными пользовательского взаимодействия, запросами контента, результатами обработки и информацией о конфигурации браузера, например, как описано в отношении ФИГ.2-6 и 12 выше.
[118] В соответствии с ФИГ.14 раскрыта блок-схема среды доставки контента представленного на ФИГ. 1, иллюстрирующая генерирование и обработку дополнительного запроса нового возобновляемого контекста просмотра от клиентского вычислительного устройства 102 В провайдеру распределенных вычислений 107. В качестве иллюстрации, клиентское вычислительное устройство 102 В может запросить новый возобновляемый контекст просмотра при открытии пользователем нового окна браузера с новой областью отображения контента, открытии новой области отображения контента в существующем окне браузера (например, открытие новой вкладки в браузере), запросе нового сетевого контента в существующей области отображения контента (например, переход по ссылке на новый сетевой ресурс или ввод нового сетевого адреса в браузере) или любом другом пользовательском взаимодействии.
[119] В одном варианте воплощения, если соединение с первым возобновляемым контекстом просмотра уже было установлено, клиентское вычислительное устройство 102 В и провайдер распределенных вычислений 107 могут не обмениваться информацией о рабочей среде возобновляемого контекста просмотра, как описано со ссылкой на ФИГ. 12. Как описано выше в отношении ФИГ.12, в ответ на запрос нового возобновляемого контекста просмотра провайдер распределенных вычислений 107 может создать экземпляр виртуальной машины, хранилища данных и/или программного приложения браузера на NCC POP 142 для поддержания состояния и контента, связанного с новым возобновляемым контекстом просмотра. Как обсуждалось выше со ссылкой на ФИГ.12, провайдер распределенных вычислений 107 может выбрать NCC POP для обслуживания запроса возобновляемого контекста просмотра на основе любого количества факторов, включая, но не ограничиваясь ими, доступные NCC POP ресурсы (например, объем доступной памяти, загрузка процессора, загрузка сети и т.д.), финансовые затраты на обслуживание запроса возобновляемого контекста просмотра в NCC POP, местоположение NCC POP, соответствующее клиентскому вычислительному устройству 102, контент-провайдеру 112 или CDN POP 116, статус кэша NCC POP (например, хранится ли уже запрошенный контент в кэше POP NCC) и т.д. В качестве иллюстрации, хотя провайдер распределенных вычислений 107 изображен здесь в целях иллюстрации как выбравший NCC POP 142, провайдер распределенных вычислений 107 может выбрать любой имеющийся NCC POP для обслуживания запроса возобновляемого контекста просмотра. Как обсуждалось выше, решение о том, выбрать ли другой NCC POP, чем тот, который был использован для предыдущего или одновременного возобновляемого контекста просмотра, может быть принято на основе доступных ресурсов системы, случайно или в соответствии с любым другим фактором, как обсуждалось выше и в отношении ФИГ.12. В качестве иллюстрации, как только будет установлен новый возобновляемый контекст просмотра, клиентское вычислительное устройство 102 В и NCC POP 142 могут начать установление сеансов просмотра и обмен данными пользовательского взаимодействия, запросами контента, результатами обработки и информацией о конфигурации браузера, например, как описано в отношении ФИГ.12 выше.
[120] ФИГ.15 представляет собой схему пользовательского интерфейса, иллюстративно изображающую интерфейс выбора возобновляемых контекстов просмотра 1500. Как описано со ссылкой на ФИГ.13 и 16, после того, как клиентское вычислительное устройство предоставляет идентификационную информацию провайдеру распределенных вычислений 107, провайдер распределенных вычислений 107 может предоставить на клиентское вычислительное устройство 102 список доступных возобновляемых контекстов просмотра 1502 на основе идентификационной информации. Например, клиентское вычислительное устройство 102 может предоставлять идентификационную информацию среды просмотра в ответ на открытие пользователем приложения браузера или иным образом идентифицировать среду просмотра для доступа. В другом примере, клиентское вычислительное устройство 102 может предоставлять идентификационную информацию пользователя, такую как логин или пароль, для доступа к провайдеру распределенных вычислений 107. Провайдер распределенных вычислений 107 может ответить на эту идентификационную информацию предоставлением списка доступных возобновляемых контекстов просмотра 1502 на клиентское вычислительное устройство 102. В одном варианте воплощения список доступных возобновляемых контекстов просмотра 1502 может быть предоставлен пользователю в интерфейсе выбора возобновляемого контекста просмотра 1500, идентифицирующем среду возобновляемого контекста просмотра (например, "John′s Home") на основе идентификационной информации, как обсуждалось выше. В качестве иллюстрации, интерфейс выбора возобновляемого контекста просмотра 1500 может предоставить список доступных возобновляемых контекстов просмотра 1502 вместе с сопроводительной информацией, такой как последняя дата доступа к возобновляемому контексту просмотра и т.д. В одном варианте воплощения интерфейс выбора возобновляемых контекстов просмотра 1500 может позволить пользователю создать новый возобновляемый контекст просмотра, а также осуществить доступ к имеющемуся возобновляемому контексту просмотра, как описано со ссылкой на ФИГ.12 и ФИГ.13, соответственно.
[121] На ФИГ.16 представлена иллюстративная блок-схема алгоритма возобновляемого клиентского просмотра, реализованная с помощью клиентского вычислительного устройства 102, представленного на ФИГ.1. Алгоритм возобновляемого клиентского просмотра 1600 начинается в блоке 1602. В качестве иллюстрации, выполнение алгоритма возобновляемого клиентского просмотра 1600 может начаться при инстанцировании на клиентском вычислительном устройстве 102 нового экземпляра программного приложения браузера, пользовательского запроса доступа к возобновляемому контексту просмотра от программного приложения браузера, ранее инстанцированного на клиентском вычислительном устройстве 102, или в результате любого другого события.
[122] В блоке 1604 клиентское вычислительное устройство 102 устанавливает соединение и производит обмен информацией о рабочей среде возобновляемого контекста просмотра с провайдером распределенных вычислений 107. В качестве иллюстрации, информация о рабочей среде возобновляемого контекста просмотра может включать любое количество типов информации, включая, но не ограничиваясь ими, информацию о конфигурации, идентифицирующую информацию, информацию о предпочтениях просмотра, информацию о действующих в настоящее время возобновляемых контекстах просмотра и т.д. Например, клиентское вычислительное устройство 102 может передавать информацию о рабочей среде возобновляемого контекста просмотра, включающую информацию об устройстве, информацию о программе браузера, информацию о местоположении, идентификатор пользователя или другую информацию о пользователе, идентификатор рабочей среды возобновляемого контекста просмотра, информацию определения предшествующей истории просмотра или последовательности закладок для использования в возобновляемом контексте просмотра, или любой другой тип информации. В частности, для целей иллюстрации, информация о рабочей среде возобновляемого контекста просмотра, передаваемая провайдеру распределенных вычислений 107 клиентским вычислительным устройством 102, может включать, но не ограничивается ими, информацию об аппаратном и программном обеспечении, связанном с клиентским вычислительным устройством 102, информацию, идентифицирующую пользователя (например, логин и пароль, идентификатор пользователя и т.д.), информацию, связанную с пользователем, идентификатор возобновляемого контекста просмотра, конфигурации или предпочтения браузера, логическое или физическое расположение устройства и т.д.
[123] В одном из вариантов воплощения информация о рабочей среде возобновляемого контекста просмотра может включать идентификатор возобновляемого контекста просмотра, связанный с совокупностью существующих возобновляемых контекстов просмотра или предпочтений возобновляемых контекстов просмотра, сохраняемых провайдером распределенных вычислений. Например, пользователю клиентского вычислительного устройства 102 может потребоваться получить доступ к среде возобновляемого контекста просмотра под названием "John′s House". Что касается этого конкретного примера, клиентское вычислительное устройство 102 может предоставить идентификатор среды возобновляемого контекста просмотра, связанный со средой возобновляемого контекста просмотра "John′s House", провайдеру распределенных вычислений 107 как часть информации среды просмотра. В качестве иллюстрации, идентификатор среды просмотра "John′s House" может быть связан с рядом различных возобновляемых контекстов просмотра провайдера распределенных вычислений 107, как обсуждается ниже, и может дополнительно быть связан с информацией предпочтений и конфигурации, общей для связанных возобновляемых контекстов просмотра, таких как последовательности закладок или история просмотра. В различных других вариантах воплощения возобновляемые контексты просмотра и различные предпочтения или информация о конфигурации могут быть связаны с идентификационной информацией пользователя, клиентским вычислительным устройством 102, логическим или физическим местоположением, программным приложением браузера, операционной системой или другим программным обеспечением, сетевым адресом, производительностью устройства или сетевыми характеристиками, или любым другим объектом, устройством или частью информации. В других вариантах воплощения информация о рабочей среде возобновляемого контекста просмотра может быть включена в запрос возобновляемого контекста просмотра или может быть изменена до или одновременно с запросом нового возобновляемого контекста просмотра. В различных вариантах воплощения информация о рабочей среде возобновляемого контекста просмотра может дополнительно или альтернативно включать идентификатор возобновляемого контекста просмотра, идентифицирующий конкретный имеющийся возобновляемый контекст просмотра.
[124] В качестве иллюстрации, в некоторых вариантах воплощения идентификатор среды просмотра может быть реализован на компьютере или в удобном для прочтения человеком виде, например, в виде алфавитно-цифровой строки, состоящей из букв, цифр или других символов, и/или закодирован в штрих-код, идентификационную радиометку передатчика или любой другой код или формат передачи. В качестве иллюстрации, клиентское вычислительное устройство 102 может быть выполнено с возможностью считывания идентификатора среды просмотра и использовать идентификатор среды просмотра для идентификации совокупностей возобновляемых контекстов просмотра и соответствующей конфигурационной информации провайдера распределенных вычислений 107. В качестве конкретного примера, первый пользователь может получить идентификатор просмотра ресурса или электронный адрес (например, унифицированный указатель ресурса (URL)), включая информацию, соответствующую адресу провайдера распределенных вычислений, вместе с идентификатором среды просмотра. В качестве иллюстрации, этот электронный адрес или идентификатор среды просмотра может в различных вариантах воплощения быть сгенерирован браузером на клиентском вычислительном устройстве 102, компонентом распределенных вычислений и хранения данных 107, первым пользователем или любой другой службой, объектом или устройством. Первый пользователь может предоставить электронный адрес второму пользователю (например, посредством электронного сообщения). Второй пользователь может предоставить электронный адрес провайдеру распределенных вычислений 102 через браузер, работающий на клиентском вычислительном устройстве 102, связанном со вторым пользователем, для доступа к возобновляемым контекстам просмотра и соответствующей конфигурационной информации, связанной с идентификатором среды просмотра. Например, электронный адрес в одном варианте воплощения может быть представлен в виде гиперссылки, содержащей адрес провайдера распределенных вычислений 107 и идентификатор среды просмотра, а второй пользователь может инициировать передачу идентификатора среды просмотра провайдеру распределенных вычислений 107, нажатием или иным образом перейдя по ссылке. В различных других вариантах воплощения идентификатор возобновляемого контекста просмотра может передаваться между клиентскими вычислительными устройствами или считываться клиентскими вычислительными устройствами с использованием любого другого способа, известного в данной области техники, включая, но не ограничиваясь ними, QR-коды, штрих-коды, коды идентификационных радиометок, коммуникации ближнего поля, Bluetooth, инфракрасный и т.д. В качестве иллюстрации, в других вариантах воплощения идентификаторы, идентифицирующие конкретный имеющийся возобновляемый контекст просмотра на провайдере распределенных вычислений 107, могут передаваться с использованием любого из подобных способов, как описано выше в отношении идентификаторов среды просмотра.
[125] Провайдер распределенных вычислений 107 может ответить на информацию возобновляемого контекста просмотра от клиента списком доступных существующих контекстов возобновляемого просмотра, связанных с идентификатором определенного устройства/пользователя/среды, информацией о конфигурации для браузера, работающего на клиентском вычислительном устройстве, закладками или историей просмотра для связи с программой браузера для возобновляемого контекста просмотра и т.д. В одном варианте воплощения в блоке 1606 клиентское вычислительное устройство может предоставить информацию аутентификации рабочей среды возобновляемого контекста просмотра провайдеру распределенных вычислений 107. Например, в ответ на идентификационную информацию, полученную от клиентского вычислительного устройства 102 (например, идентификатор рабочей среды возобновляемого контекста просмотра, пользователя, устройства или идентификационная информация браузера и т.д.) провайдер распределенных вычислений 107 может запросить дополнительную информацию аутентификации, такую как логин и/или пароль. В качестве иллюстрации, эта информация аутентификации может быть запрошена или предоставлена по защищенному соединению с использованием любого протокола или способа, известного в данной области техники.
[126] В блоке 1608, клиентское вычислительное устройство 102 получает информацию о текущем активном возобновляемом контексте просмотра, такую как список активных в данный момент возобновляемых контекстов просмотра, связанных с одним или более аспектами идентификационной информации, изменяемой в блоке 1604, выше. В качестве иллюстрации, информация о текущем активном возобновляемом контексте просмотра может включать различную информацию, касающуюся одного или более возобновляемых контекстов просмотра в списке, включая, но не ограничиваясь ими, имена или идентификаторы возобновляемого контекста просмотра, последние даты доступа к возобновляемому контексту просмотра, общее время просмотра для возобновляемого контекста просмотра, даты создания возобновляемого контекста просмотра, теги или другие категории информации возобновляемого контекста просмотра, списки контента, связанные с каждым возобновляемым контекстом просмотра, пользовательские заметки, записи доступа устройства или браузера или любую другую хронологическую или идентифицирующую информацию. В некоторых вариантах воплощения блок 1608 может быть пропущен, может быть объединен с другим блоком или может возникнуть раньше или позже, чем изображено в алгоритме 1600. Например, блок 1608 может и не понадобиться, если клиентское вычислительное устройство определит конкретный возобновляемый контекст просмотра, присоединяемый как часть информации о рабочей среде возобновляемого контекста просмотра, и в данный момент нет никаких активных возобновляемых контекстов просмотра, связанных с одним или более аспектами идентификационной информации и т.д.
[127] В блоке принятия решения 1610 клиентское вычислительное устройство 102 может предоставить запрос нового возобновляемого контекста просмотра провайдеру распределенных вычислений 107 в блоке 1612, как описано в соответствии с ФИГ.12 и 14 выше, или может идентифицировать активный в данный момент времени возобновляемый контекст просмотра для доступа в блок принятия решения 1614. В блоке 1612, при предоставлении запроса нового возобновляемого контекста просмотра провайдеру распределенных вычислений 107, провайдер распределенных вычислений 107 может создавать экземпляр нового возобновляемого контекста просмотра, соответствующего запросу. В качестве иллюстрации, в одном варианте воплощения запрос нового возобновляемого контекста просмотра может включать один или более адресов или ссылок на различные сетевые ресурсы или другой контент, запрошенный клиентским вычислительным устройством 102. В дополнительном варианте воплощения запрос возобновляемого контекста просмотра может включать ассоциативную информацию, связывающую новый возобновляемый контекст просмотра с одним или более аспектами идентификационной информации, включенными в информацию о рабочей среде возобновляемого контекста просмотра, как описано выше со ссылкой на блок 1604. В иллюстративном варианте воплощения запрос возобновляемого контекста просмотра передается в соответствии с API. После предоставления нового запроса просмотра провайдеру распределенных вычислений 107, клиентское вычислительное устройство 102 может предоставить информацию о выборе возобновляемого контекста просмотра, позволяющую выбрать новый возобновляемый контекст просмотра провайдеру распределенных вычислений 107. В некоторых вариантах воплощения алгоритм 1600 будет выполняться непосредственно до блока 1616 без предоставления дополнительной информации о выборе.
[128] В блоке 1614 клиентское вычислительное устройство 102 может выбрать имеющийся возобновляемый контекст просмотра. Для иллюстрации, клиентское вычислительное устройство 102 может предоставить информацию выбора возобновляемого контекста просмотра провайдеру распределенных вычислений 107. В одном варианте воплощения информация выбора возобновляемого контекста просмотра может соответствовать одному или более активным возобновляемым контекстам просмотра, включенным в текущую активную информацию возобновляемого контекста просмотра, предоставляемую клиентскому вычислительному устройству 102 в блоке 1608. В качестве иллюстрации, алгоритм 1600 может пропустить этот блок, например, если был создан новый возобновляемый контекст просмотра, или если конкретный имеющийся возобновляемый контекст просмотра уже был идентифицирован в информации о рабочей среде возобновляемого контекста просмотра, измененной в блоке 1604 выше.
[129] В блоке 1616 клиентское вычислительное устройство 102 может получать один или более первоначальных результатов обработки от провайдера распределенных вычислений 107, соответствующих контенту возобновляемого контекста просмотра, выбранного в блоке 1614 выше. Первоначальные результаты обработки могут соответствовать сеансам просмотра, связанным с возобновляемым контекстом просмотра и инстанцированным на одном или более NCC POP, связанным с провайдером распределенных вычислений 107, как описано выше со ссылкой на ФИГ. 9-11. Первоначальные результаты обработки могут быть связаны с представлениями контента, связанными с возобновляемым контекстом просмотра. Например, при наличии нового возобновляемого контекста просмотра, первоначальные результаты обработки могут быть связаны с представлениями контента, запрошенными в связи с новым возобновляемым контекстом просмотра. При наличии имеющегося возобновляемого контекста просмотра, первоначальные результаты обработки могут быть связаны с представлениями контента, связанными с имеющимся возобновляемым контекстом просмотра, такими как, например, веб-страницы, соответствующие открытым вкладкам, связанным с возобновляемым контекстом просмотра. В качестве иллюстрации, представления контента, связанные с имеющимся возобновляемым контекстом просмотра, могут включать предварительное состояние контента (т.е. состояние контента на момент последнего осуществления доступа к возобновляемому контексту просмотра). Например, пользователь клиентского вычислительного устройства 102, осуществляющий доступ к возобновляемому контексту просмотра на провайдере распределенных вычислений 107, может иметь открытыми несколько веб-страниц в различных вкладках браузера на клиентском вычислительном устройстве 102. Пользователь может дополнительно осуществить прокрутку вниз по контенту веб-страницы на первой веб-странице и ввести данные в веб-форму на второй веб-странице перед закрытием браузера на клиентском вычислительном устройстве 102. Что касается этого конкретного примера, браузер на клиентском вычислительном устройстве 102, осуществляющий доступ к связанному возобновляемому контексту просмотра провайдера распределенных вычислений 107, может получать результаты обработки, соответствующие представлениям веб-страниц, как они были отображены перед тем, как браузер был закрыт. Для примера, результаты обработки могут, таким образом, соответствовать отображаемой части прокручиваемой вниз веб-страницы и соответствовать второй веб-странице с неизменными данными формы, а также любым другим представлениям контента, которые отображались ранее перед закрытием браузера на клиентском вычислительном устройстве 102. В качестве иллюстрации, формат и данные, включаемые в первоначальные результаты обработки, могут варьироваться в зависимости от конфигурации сеанса удаленного просмотра, выбранной провайдером распределенных вычислений 107, как описано выше со ссылкой на ФИГ.9-11. Клиентское вычислительное устройство 102, осуществляющее доступ к возобновляемому контексту просмотра, может дополнительно получать информацию о конфигурации браузера, соответствующую состоянию браузера перед закрытием исходного браузера, включающую без ограничения: расположение элементов интерфейса в браузере, просмотр состояния или стиля (например, отображения контента в закладках, окнах или фреймах, и сколько отображается каждого из них), тему браузера или визуальную оболочку, предпочтения браузера, историю браузера, сохраненные файлы куки или другую идентификационную информацию, закладки, а также любую другую конфигурационную, настроечную информацию или информацию, связанную с браузером.
[130] В одном варианте воплощения первоначальные результаты обработки, полученные от провайдера распределенных вычислений 107 и связанные с возобновляемым контекстом просмотра, могут соответствовать совокупности различных ресурсов или контента (например, совокупности веб-страниц). Как описано выше со ссылкой на ФИГ.7, ресурсы могут быть предоставлены на различных вкладках в интерфейсе браузера на клиентском вычислительном устройстве 102 или могут быть представлены в виде последовательности окон, фреймов в отдельном окне, элементов в списке или в любом другом визуальном или организационном представлении. В качестве иллюстрации, если визуальное или организационное представление ресурсов таково, что сначала будет отображаться один ресурс, то есть перед отображением других ресурсов (например, на открытой в данный момент вкладке в браузере с вкладками, такими, как на ФИГ.7 выше) результаты обработки, соответствующие представлениям этого ресурса, могут учитывать приоритет обработки или передачи на клиентском вычислительном устройстве 102 и/или провайдере распределенных вычислений 107. Например, клиентское вычислительное устройство 102 может выполнять любые необходимые этапы обработки по результатам обработки, соответствующим первоначально отображаемым ресурсам перед выполнением этапов обработки по результатам обработки, соответствующим ресурсам, которые будут скрыты интерфейсом браузера (например, ресурсы на вкладках, которые в настоящее время не отображаются). В качестве другого примера, провайдер распределенных вычислений 107 может приоритизировать один или более сеансов просмотра, связанных с первоначально отображаемыми ресурсами. В качестве иллюстрации, приоритизация может включать результаты обработки, соответствующие первоначально отображаемым ресурсам, перед отправкой результатов обработки, соответствующих другим ресурсам. В других вариантах воплощения, обработка и/или передача результатов обработки может быть приоритизирована на основе других факторов, включающих теги, генерируемые пользователем или браузером, тип контента, теги в коде ресурса (например, HTML-теги или метаданные), ценность контента, спецификации или требования к аппаратным средствам или сети или любые другие факторы.
[131] В блоке 1618 клиентское вычислительное устройство 102 может обрабатывать пользовательские взаимодействия с возобновляемым контекстом просмотра, включая предоставление данных пользовательского взаимодействия или новые запросы ресурсов провайдеру распределенных вычислений 107. Пользовательские взаимодействия с возобновляемым контекстом просмотра соответствуют обработке и получению результатов обработки, связанных с представлениями контента, с которым осуществляется взаимодействие, или запрашиваемого контента, как описано выше со ссылкой на ФИГ.11. Ряд иллюстративных вариантов воплощения, связанных с обработкой пользовательских взаимодействий с возобновляемым контекстом просмотра, описан ниже. Однако такие варианты воплощения не следует рассматривать как ограничивающие и они не подразумевают требуемый порядок или комбинацию вариантов воплощения.
[132] В одном аспекте клиентское вычислительное устройство 102 может дублировать существующие возобновляемые контексты просмотра, предоставляя копию запроса возобновляемого контекста просмотра провайдеру распределенных вычислений 107. В качестве иллюстрации, провайдер распределенных вычислений 107 может обрабатывать копию запроса возобновляемого контекста просмотра и инстанцировать новый возобновляемый контекст просмотра на провайдере распределенных вычислений с идентичным контентом и состоянием для первоначального возобновляемого контекста просмотра. В одном варианте воплощения копия запроса возобновляемого контекста просмотра может быть сгенерирована с помощью браузера, осуществляющего доступ к имеющемуся возобновляемому контексту просмотра. Например, пользователь может получить доступ к имеющемуся возобновляемому контексту просмотра с нового клиентского вычислительного устройства 102 или через клиентское вычислительное устройство 102, которое ранее использовалось пользователем. Провайдер распределенных вычислений 107 может дублировать имеющийся возобновляемый контекст просмотра и предоставлять пользователю представления оригинального контента, связанного с имеющимся возобновляемым контекстом просмотра и теперь связанного с копией возобновляемого контекста просмотра. Для целей этого примера, пользователь может взаимодействовать с представлениями контента, связанными с дублированным возобновляемым контекстом просмотра на новом клиентском вычислительном устройстве, которое может изменить контент или состояния контента, связанные с дублированным возобновляемым контекстом просмотра.
[133] В последующий момент времени, пользователь может снова осуществить доступ к оригинальному имеющемуся возобновляемому контексту просмотра. В качестве иллюстрации, провайдер распределенных вычислений 107 может предоставить пользователю представления оригинального контента и состояния контента, связанные с существующим возобновляемым контекстом просмотра, а не представления контента или состояния контента, связанные с дублированным возобновляемым контекстом просмотра. Кроме того, пользователь может пожелать продолжить осуществление доступа ко впоследствии модифицированной копии возобновляемого контекста просмотра.
[134] В другом аспекте, если оригинальный возобновляемый контекст просмотра был связан с какой-либо конкретной информацией о рабочей среде возобновляемого контекста просмотра (например, идентификатором просмотра рабочей среды или другой идентификационной информацией), вновь инстанцированная копия возобновляемого контекста просмотра может быть связана с той же информацией о рабочей среде возобновляемого контекста просмотра или может быть создана как несвязанная ни с какой конкретной информацией. Дублированный возобновляемый контекст просмотра может быть инстанцирован на том же NCC POP 142, что и оригинальный возобновляемый контекст просмотра, или может быть инстанцирован на любом другом NCC POP, связанном с провайдером распределенных вычислений.
[135] В дополнительном аспекте клиентское вычислительное устройство 102 может импортировать или экспортировать контент и/или предпочтения между возобновляемыми контекстами просмотра. Например, клиентское вычислительное устройство 102 может предоставлять запрос импорта контента провайдеру распределенных вычислений 107. В одном варианте воплощения запрос импорта контента может включать один или более идентификаторов контента в текущем возобновляемом контексте просмотра и идентификатор возобновляемого контекста просмотра для импорта. В качестве конкретного примера, запрос импорта контента может включать идентификаторы двух вкладок, соответствующих веб-страницам, отображаемым в текущем возобновляемом контексте просмотра. Провайдер распределенных вычислений 107 может добавить эти вкладки в указанный имеющийся возобновляемый контекст просмотра. В различных вариантах воплощения эти вкладки могут быть удалены или сохранены в текущем возобновляемом контексте просмотра и могут быть добавлены к указанному возобновляемому контексту просмотра с или без какой-либо информации о состоянии контента (например, данные, введенные в форму, или состояние и т.д.), связанной с контентом в текущем возобновляемом контексте просмотра. В другом варианте воплощения клиентское вычислительное устройство 102 может предоставлять запрос импорта конфигурации браузера провайдеру распределенных вычислений 107. В качестве иллюстрации, запрос импорта конфигурации браузера может определять один или более аспектов конфигурации браузера, который обращается к текущему возобновляемому контексту просмотра (например, закладки, историю, визуальные предпочтения и т.д.), и может обусловить добавление провайдером распределенных вычислений 107 определенной конфигурации к другому определенному имеющемуся возобновляемому контексту просмотра. В одном варианте воплощения определенная конфигурация может заменить любую имеющуюся конфигурацию в указанном браузере.
[136] В еще одном аспекте клиентское вычислительное устройство 102 может ассоциировать имеющийся возобновляемый контекст просмотра с идентифицирующей информацией (например, идентификатором рабочей среды просмотра, идентификатором пользователя, идентификатором браузера и т.д.), как описано выше со ссылкой на обмен информацией о рабочей среде возобновляемого контекста просмотра в блоке 1604. Например, клиентское вычислительное устройство 102 может предоставить связанный запрос сеанса просмотра провайдеру распределенных вычислений 107, который может определить конкретную идентифицирующую информацию, с которой ассоциируется текущий сеанс просмотра. Клиентское вычислительное устройство 102 может дополнительно отправлять запросы провайдеру распределенных вычислений 107 для установления связи возобновляемого контекста просмотра с новым идентификатором (например, новым идентификатором возобновляемого контекста просмотра или идентификатором рабочей среды просмотра). В одном варианте воплощения клиентское вычислительное устройство 102 может дополнительно отправлять запросы провайдеру распределенных вычислений 107 для установления связи конфигурации конкретного браузера или клиентского вычислительного устройства с конкретным идентификатором или частью идентифицирующей информации. В качестве иллюстрации, в одном варианте воплощения все возобновляемые контексты просмотра, связанные с конкретным идентификатором или частью идентифицирующей информации, могут быть общими для одного или более аспектов конфигурации браузера или клиентского вычислительного устройства. Например, все возобновляемые контексты просмотра, связанные с определенным идентификатором рабочей среды просмотра, могут быть связанными с конфигурационной информацией браузера, которая включает, без ограничения, последовательность закладок или историю браузера.
[137] Согласно ФИГ.16, в блоке 1620 алгоритм 1600 завершается. В одном варианте воплощения это может соответствовать тому, что пользователь клиентского вычислительного устройства 102 завершает взаимодействие с возобновляемым контекстом просмотра. В качестве иллюстрации, то же самое или отличное клиентское вычислительное устройство 102 может запросить доступ и взаимодействовать с возобновляемым контекстом просмотра на более позднем этапе в том же алгоритме 1600. Как обсуждалось выше, любое количество различных клиентских вычислительных устройств 102 или пользователей может получить доступ к любому количеству возобновляемых контекстов просмотра. Кроме того, одно или более клиентских вычислительных устройств 102 или пользователей может получить доступ к возобновляемому контексту просмотра любое количество раз после его создания.
[138] ФИГ.17 представляет собой иллюстративную блок-схему алгоритма возобновляемого удаленного просмотра 1700, реализуемого провайдером распределенных вычислений 107, показанным на ФИГ.1. Алгоритм возобновляемого удаленного просмотра 1700 начинается в блоке 1702. В блоке 1704 провайдер распределенных вычислений 107 обменивается информацией о рабочей среде возобновляемого контекста просмотра с клиентским вычислительным устройством 102. Как описано выше со ссылкой на ФИГ.8, информация о рабочей среде возобновляемого контекста просмотра может включать любое количество типов информации, включающей, без ограничения, конфигурационную информацию, идентифицирующую информацию, информацию предпочтений просмотра, информацию о действующих в настоящее время возобновляемых контекстах просмотра и т.д. Например, провайдер распределенных вычислений 107 может получать разнообразную идентифицирующую информацию, включая, без ограничения, информацию об устройстве, информацию о программе браузера, информацию о местоположении, идентификатор пользователя или другую информацию о пользователе, идентификатор рабочей среды возобновляемого контекста просмотра и т.д. В одном варианте воплощения провайдер распределенных вычислений 107 может определить имеющиеся возобновляемые контексты просмотра, связанные с одной или более частями информации. Например, пользователь клиентского вычислительного устройства 102 может быть связан с несколькими имеющимися возобновляемыми контекстами просмотра. В другом примере, информация о рабочей среде возобновляемого контекста просмотра может определять отдельный имеющийся сеанс просмотра для загрузки.
[139] В дополнительном варианте воплощения провайдер распределенных вычислений 107 может определять различную информацию о конфигурации браузера (например, стиль браузера, макет, тему, предпочтения, историю, закладки и т.д.), связанную с одной или более частями информации о рабочей среде возобновляемого контекста просмотра. Например, пользователь клиентского вычислительного устройства 102 может быть связан с совокупностью истории просмотра и закладок. В качестве иллюстрации, в одном варианте воплощения один или более возобновляемых контекстов просмотра, созданных пользователем или к которым обращается пользователь, могут быть общими для связанной совокупности истории просмотра и закладок и не быть связанными с совокупностью истории просмотра и закладок, соответствующих каждому отдельному возобновляемому сеансу просмотра.
[140] В рамках обмена информацией о рабочей среде возобновляемого контекста просмотра в блоке 1704 провайдер распределенных вычислений 107 может предоставить определенную информацию о конфигурации браузера или любую другую информацию на клиентское вычислительное устройство 102, как описано выше со ссылкой на ФИГ.16. В блоке 1706 провайдер распределенных вычислений может предоставлять информацию об активном возобновляемом контексте просмотра, такую как список одного или более активных возобновляемых контекстов просмотра, связанных с одним или более аспектами информации о рабочей среде возобновляемого контекста просмотра, на клиентское вычислительное устройство 102. В качестве иллюстрации, провайдер распределенных вычислений 107 может не предпринять этот шаг в тех случаях, когда нет активных возобновляемых контекстов просмотра, связанных с одним или более аспектами информации о рабочей среде возобновляемого контекста просмотра, или если информация о рабочей среде возобновляемого контекста просмотра определяет конкретный имеющийся или новый возобновляемый контекст просмотра для осуществления доступа.
[141] В блоке 1708 провайдер распределенных вычислений 107 получает информацию о выборе возобновляемого контекста просмотра от клиентского вычислительного устройства 102. В одном варианте воплощения информация о выборе возобновляемого контекста просмотра идентифицирует имеющийся действующий возобновляемый контекст просмотра. С точки зрения пользователя клиентского вычислительного устройства 102 возобновляемый контекст просмотра может представлять собой данные о состоянии и контент, связанные с браузером или другим приложением, запущенным на клиентском вычислительном устройстве 102. Например, возобновляемый контекст просмотра может быть связан с совокупностью открытых вкладок в браузере, контентом, отображаемым в этих вкладках, текущим состоянием отображаемого контента, а также данными о конфигурации любого браузера или приложения, связанного с браузером или отображением контента. С точки зрения провайдера распределенных вычислений 107, возобновляемый контекст просмотра может быть связан с сохраняемым или кэшируемым контентом, соответствующим контенту, отображаемому в браузере на клиентском вычислительном устройстве 102, а также состоянием контента и состоянием браузера, включая любую информацию о конфигурации браузера.
[142] В одном варианте воплощения провайдер распределенных вычислений 107 может поддерживать один или более сеансов просмотра, связанных с возобновляемым контекстом просмотра на различных NCC POP, связанных с провайдером распределенных вычислений 107. В качестве иллюстрации, каждый сеанс просмотра может быть связан с другой частью контента, вкладкой браузера, окном, фреймом и т.д. браузера, работающего на клиентском вычислительном устройстве 102, как описано выше согласно ФИГ.9-11. В одном варианте воплощения каждый сеанс просмотра может быть связан с любым количеством подобных или отличных конфигураций сеанса удаленного просмотра. В дополнительном варианте воплощения провайдер распределенных вычислений 107 может выбрать новую конфигурацию сеанса удаленного просмотра для одного или более сеансов просмотра, связанных с возобновляемым контекстом просмотра, каждый раз, когда клиентское вычислительное устройство 102 осуществляет доступ к возобновляемому контексту просмотра. Например, если клиентское вычислительное устройство с ограниченной вычислительной мощностью осуществляет доступ к имеющемуся возобновляемому контексту просмотра, провайдер распределенных вычислений 107 может выбрать конфигурации сеанса удаленного просмотра для одного или более связанных сеансов просмотра, которые позволяют большинство операций обработки выполнять на провайдере распределенных вычислений 107.
[143] В другом варианте воплощения провайдер распределенных вычислений 107 может также поддерживать дополнительную информацию, связанную с возобновляемым контекстом просмотра на одном или более NCC POP, включая, но не ограничиваясь ею, информацию о конфигурации браузера, описывающую состояние браузера на клиентском вычислительном устройстве 102. В другом варианте воплощения провайдер распределенных вычислений 107 может поддерживать программное приложение браузера, связанное с возобновляемым контекстом просмотра на NCC POP 142. Например, провайдер распределенных вычислений 107 может запускать программное приложение браузера, связанное с возобновляемым сеансом просмотра, параллельно с браузером, работающим на клиентском вычислительном устройстве 102. В качестве иллюстрации, браузер, работающий на провайдере распределенных вычислений 107, может поддерживать контент, состояние контента и состояние браузера, связанное с возобновляемым сеансом просмотра.
[144] В блоке 1710 провайдер распределенных вычислений 107 может определить, требуется ли обновление контента, связанного с выбранным возобновляемым контекстом просмотра. В качестве иллюстрации, контент, связанный с выбранным возобновляемым контекстом просмотра, может быть передан между связанными друг с другом клиентскими вычислительными устройствами 102. В конкретном примере пользователь может просматривать веб-страницу, отображающую последние новости на первый момент времени, а затем осуществлять доступ к возобновляемому контексту просмотра в более поздний момент времени, когда веб-страница последних новостей могла быть изменена. В одном варианте воплощения провайдер распределенных вычислений 107 может обновлять измененный контент (например, путем повторного запроса контента от контент провайдера, CDN или из кэша) перед отправкой результатов обработки, соответствующих контенту, на клиентское вычислительное устройство. В других вариантах воплощения провайдер распределенных вычислений 107 может сохранить контент старой страницы и/или состояние страницы для предоставления на клиентское вычислительное устройство. Предоставление результатов обработки, соответствующих контенту старой страницы, может потребоваться, например, когда новостная статья была изменена или удалена с момента последнего осуществления доступа к возобновляемому контексту просмотра клиентским вычислительным устройством 102.
[145] Провайдер распределенных вычислений 107 может определить, следует ли обновлять контент, связанный с выбранным возобновляемым контекстом просмотра, на основе любого количества факторов, включая, но не ограничиваясь ими, пользовательские опции или предпочтения, атрибут контента (например, размер, встроенные ресурсы, тип контента, категория контента), флаги или теги, связанные с контентом, или предпочтения, связанные с провайдером распределенных вычислений 107, клиентским вычислительным устройством 102, браузером или приложением, операционной системой, сервис-провайдером CDN 106, контент-провайдером 104 или другим объектом или системой. В одном варианте воплощения провайдер распределенных вычислений 107 может предоставить результаты обработки, связанные со старым контентом, на клиентское вычислительное устройство 102 для отображения, а также получить и предварительно обработать обновленный контент при подготовке к получению запроса обновления контента.
[146] В блоке 1712 провайдер распределенных вычислений 107 может обновить любой контент, для которого обновление определено как необходимое в блоке 1710. В качестве иллюстрации, это может включать запрос контента от сервис-провайдера CDN 106, контент-провайдера 104 или из кэша, как описано выше со ссылкой на ФИГ.3 и 4.
[147] В блоке 1714 провайдер распределенных вычислений 107 может обрабатывать контент, связанный с возобновляемым контекстом просмотра, для генерации результатов обработки, соответствующих представлениям контента, как описано выше согласно ФИГ.9-11. В качестве иллюстрации, провайдер распределенных вычислений 107 может обрабатывать контент с учетом любых сохраненных данных состояния контента, связанных с возобновляемым контекстом просмотра, с тем, чтобы гарантировать, что результаты обработки соответствуют последним просматриваемым представлениям контента.
[148] В качестве иллюстрации, в одном варианте воплощения несколько различных клиентских вычислительных устройств 102 с различными возможностями отображения могут получить доступ к возобновляемому сеансу просмотра. В одном варианте воплощения провайдер распределенных вычислений 107 может обрабатывать контент, связанный с возобновляемым сеансом просмотра, специально для отображения на клиентском вычислительном устройстве, осуществляющем в настоящее время доступ к возобновляемому сеансу просмотра. В качестве иллюстрации, любая информация о браузере или состоянии контента, связанная с возобновляемым сеансом просмотра, которая может быть неуместной или излишней для отображения на конкретном клиентском вычислительном устройстве, может быть отбракована или сохранена, но она не будет использована в обработке контента и отображении контента на клиентском вычислительном устройстве. Например, первое клиентское вычислительное устройство 102А может создать новый возобновляемый сеанс просмотра с помощью провайдера распределенных вычислений 107. В этом конкретном примере первое клиентское вычислительное устройство может представлять собой персональный компьютер с большим экраном, клавиатурой и мышью. Пользователь первого клиентского вычислительного устройства 102А может загрузить несколько веб-страниц на различных вкладках браузера, работающего на клиентском вычислительном устройстве и подключенного к возобновляемому сеансу просмотра. В качестве иллюстрации, веб-страницы, загруженные на клиентском вычислительном устройстве, могут быть отображены после приведения к формату окна просмотра большого экрана.
[149] В продолжение конкретного примера, в более поздний момент времени, второе клиентское вычислительное устройство 102 В может осуществить доступ к возобновляемому сеансу просмотра. В качестве иллюстрации, второе клиентское вычислительное устройство 102 В может быть смартфоном или другим устройством с ограниченным размером экрана и возможностями по вводу данных. В одном варианте воплощения провайдер распределенных вычислений может предоставить результаты обработки на второе клиентское вычислительное устройство 102 В, на котором контент, связанный с возобновляемым сеансом просмотра, отформатирован для небольшого экрана. Если в одном варианте воплощения второе клиентское вычислительное устройство 102 В не имеет возможности просмотра с созданием вкладок, провайдер распределенных вычислений 107 может предоставлять информацию о конфигурации браузера, определяющую, что должна быть отображена только верхняя вкладка возобновляемого сеанса просмотра, или может предоставить список открытых вкладок, связанных с возобновляемым сеансом просмотра, на второе клиентское вычислительное устройство 102 В, которые может выбрать пользователь.
[150] В блоке 1716 провайдер распределенных вычислений 107 может предоставлять первоначальные результаты обработки на клиентское вычислительное устройство, а также любую другую информацию о конфигурации браузера, связанную с возобновляемым контекстом просмотра.
[151] В блоке 1718 провайдер распределенных вычислений 107 может обрабатывать пользовательские взаимодействия с клиентским вычислительным устройством, как иллюстративно описано выше в отношении ФИГ.5 и 11.
[152] В блоке 1720 выполнение алгоритма 1700 завершается. В одном варианте воплощения пользователь может разорвать соединение с возобновляемым контекстом просмотра, закрыв браузер или выключив клиентское вычислительное устройство 102. В некоторых вариантах воплощения устройство распределенных вычислений и хранения данных 107 может установить возобновляемый контекст просмотра в пассивное состояние, при котором не происходит активного взаимодействия между клиентским вычислительным устройством 102 и возобновляемым просмотром. В качестве иллюстрации, установление возобновляемого контекста просмотра в пассивное состояние может включать, но не ограничивается, закрытием программного приложения браузера, работающего на устройстве распределенных вычислений и хранения данных 107, которое связано с возобновляемым контекстом просмотра, копированием, перемещением или сохранением данных, связанных с различным контентом, состояниями контента или состояниями браузера, связанными с возобновляемым контекстом просмотра и т.д. В одном варианте воплощения любые изменения, произведенные при установлении возобновляемого контекста просмотра в пассивное состояние, могут быть отменены, если возобновляемый контекст просмотра позже запрашивается клиентским вычислительным устройством 102. Устройство распределенных вычислений и хранения данных 107 может установить возобновляемый контекст просмотра в пассивное состояние на основе любого количества факторов, включая, но не ограничиваясь ими, тайм-аут данных взаимодействия от клиентского вычислительного устройства 102, пользовательские опции или предпочтения, атрибут контента (например, размер, встроенные ресурсы, тип контента, категория контента), флаги или теги, связанные с контентом, или предпочтения, связанные с провайдером распределенных вычислений 107, клиентским вычислительным устройством 102, браузером или приложением, операционной системой, CDN 106, контент-провайдером 104 или другим объектом или системой.
[153] Различные типовые варианты воплощения изобретения могут быть описаны с учетом следующих пунктов формулы изобретения:
П.1. Реализуемый на компьютере способ для осуществления сеанса удаленного просмотра, содержащий:
получение запроса возобновляемого контекста просмотра от первого клиентского вычислительного устройства;
инициализацию нового сетевого программного приложения браузера, соответствующего запросу возобновляемого контекста просмотра; получение контента, запрошенного первым клиентским вычислительным устройством, причем контент содержит сетевой ресурс, ссылающийся на один или более встроенных ресурсов;
обработку контента для генерации первого результата обработки, при которой первый результат обработки соответствует первому состоянию запрошенного контента и, при этом, первый результат обработки соответствует первому представлению запрошенного контента для отображения на первом вычислительном устройстве; предоставление первого результата обработки на первое клиентское вычислительное устройство, при котором первое клиентское вычислительное устройство выполнено с возможностью отображения первого представления запрошенного контента;
получение запроса осуществления доступа к возобновляемому контексту просмотра от второго клиентского вычислительного устройства; и предоставление второго результата обработки на второе клиентское вычислительное устройство, при котором второй результат обработки генерируется на основе, по меньшей мере частично, первого состояния запрошенного контента, при этом, второй результат обработки соответствует второму представлению запрошенного контента для отображения на втором клиентском вычислительном устройстве, и при этом, второе клиентское вычислительное устройство выполнено с возможностью отображения второго представления запрошенного контента.
П.2. Реализуемый на компьютере способ по п.1, отличающийся тем, что первое клиентское вычислительное устройство и второе клиентское вычислительное устройство связаны с одним и тем же пользователем.
П.3. Реализуемый на компьютере способ по п.1, отличающийся тем, что второй клиент содержит вычислительное устройство, аналогичное первому клиентскому вычислительному устройству, в более поздний момент времени.
П.4. Реализуемый на компьютере способ по п.1, отличающийся тем, что второй результат обработки содержит первый результат обработки.
П.5. Реализуемый на компьютере способ по п.1, отличающийся тем, что первое состояние запрашиваемого контента основано на одном или более пользовательских взаимодействиях с представлением запрошенного контента, отображаемого на первом клиентском вычислительном устройстве.
П.6. Реализуемый на компьютере способ по п.1, отличающийся тем, что дополнительно содержит:
получение запроса второго возобновляемого контекста просмотра третьим клиентским вычислительным устройством; и
предоставление одного или более результатов обработки на третье клиентское вычислительное устройство, при котором один или более результатов обработки соответствуют одному или более представлений контента, запрошенного третьим клиентским вычислительным устройством и, при этом, третье клиентское вычислительное устройство выполнено с возможностью отображения первого одного или более представлений запрошенного контента.
П.7. Реализуемый на компьютере способ для осуществления сеанса удаленного просмотра, содержащий:
получение провайдером распределенных вычислений запроса первого возобновляемого контекста просмотра от первого клиентского вычислительного устройства;
предоставление провайдером распределенных вычислений результатов обработки на первое клиентское вычислительное устройство, при котором результаты обработки соответствуют представлениям контента, соответствующим первоначальному возобновляемому контексту просмотра;
получение провайдером распределенных вычислений запроса осуществления доступа ко второму возобновляемому контексту просмотра вторым клиентским вычислительным устройством, при котором первый и второй возобновляемые контексты являются одинаковыми; и
предоставление провайдером распределенных вычислений вторых результатов обработки на второе клиентское вычислительное устройство, при котором вторые результаты обработки соответствуют второму представлению контента, связанному со вторым возобновляемым контекстом просмотра.
П.8. Реализуемый на компьютере способ по п.7, отличающийся тем, что второй клиент использует первое клиентское вычислительное устройство.
П.9. Реализуемый на компьютере способ по п.7, отличающийся тем, что вторые результаты обработки включают первые результаты обработки.
П.10. Реализуемый на компьютере способ по п.7, отличающийся тем, что первые представления контента, запрошенные первым клиентским вычислительным устройством, соответствуют одному или более состояний контента, запрошенных первым клиентским вычислительным устройством.
П.11. Реализуемый на компьютере способ по п.10, отличающийся тем, что вторые представления контента, запрошенные вторым клиентским вычислительным устройством, соответствуют одному или более состояниям контента, запрошенным первым клиентским вычислительным устройством.
П.12. Реализуемый на компьютере способ по п.7, дополнительно содержащий:
получение провайдером распределенных вычислений запроса третьего возобновляемого контекста просмотра от третьего клиентского вычислительного устройства; и
предоставление провайдером распределенных вычислений третьих результатов обработки на третье клиентское вычислительное устройство, при котором третьи результаты обработки соответствуют третьему представлению контента, запрошенному третьим клиентским вычислительным устройством.
П.13. Реализуемый на компьютере способ по п.12, отличающийся тем, что дополнительно содержит дублирование первого возобновляемого контекста просмотра для генерации третьего возобновляемого контекста просмотра.
П.14. Реализуемый на компьютере способ по п.13, отличающийся тем, что пользовательские взаимодействия с представлениями контента, связанные с третьим возобновляемым контекстом просмотра, не изменяют первый возобновляемый контекст просмотра.
П.15. Реализуемый на компьютере способ по п.12, отличающийся тем, что первый возобновляемый контекст просмотра и второй возобновляемый контекст просмотра связаны с одной общей информацией о конфигурации браузера.
П.16. Реализуемый на компьютере способ по п.15, отличающийся тем, что общая информация о конфигурации браузера включает по меньшей мере одно из предпочтений отображения возобновляемого контекста просмотра, информацию о закладках, визуальные предпочтения внешнего вида приложения браузера и историю браузера, общую для первого возобновляемого контекста удаленного просмотра и второго возобновляемого контекста удаленного просмотра.
П.17. Реализуемый на компьютере способ по п.12, отличающийся тем, что третье клиентское вычислительное устройство содержит по меньшей мере одно из: первое клиентское вычислительное устройство, второе клиентское вычислительное устройство.
П.18. Реализуемый на компьютере способ по п.17, отличающийся тем, что третье клиентское вычислительное устройство выполнено с возможностью отображения первого одного или более представлений запрашиваемого контента и третьего одного или более представлений запрашиваемого контента по меньшей мере в одном из отдельных окон программного приложения браузера, отдельных фреймах браузера и отдельных вкладках браузера.
П.19. Система для осуществления сеанса удаленного просмотра, содержащая:
один или более компьютерных процессоров;
по меньшей мере одну компьютерную память, доступную по меньшей мере для одного из одного или более компьютерных процессоров; и
компонент распределенных вычислений, содержащий исполняемый программный модуль, выполняемый одним или более компьютерными процессорами, при этом, компонент распределенных вычислений выполнен с возможностью:
получения запроса возобновляемого контекста просмотра от первого клиентского вычислительного устройства;
обработки контента, связанного с возобновляемым контекстом просмотра, для генерации первых результатов обработки, при которой первые результаты обработки соответствуют первым представлениям контента для отображения на первом клиентском вычислительном устройстве; получения запроса осуществления доступа к возобновляемому контексту просмотра от второго клиентского вычислительного устройства; и обработки контента, связанного с возобновляемым контекстом просмотра, для генерации вторых результатов обработки, при которой вторые результаты обработки соответствуют второму представлению контента для отображения на втором клиентском вычислительном устройстве.
П.20. Система по п.19, отличающаяся тем, что второй клиент использует вычислительное устройство, аналогичное первому клиентскому вычислительному устройству, в более поздний момент времени.
П.21. Система по п.19, отличающаяся тем, что второй один или более результатов обработки содержит первый один или более результатов обработки.
П.22. Система по п.19, отличающаяся тем, что первые представления контента, связанные с возобновляемым контекстом просмотра, соответствуют одному или более состояниям контента, связанным с возобновляемым контекстом просмотра.
П.23. Система по п.22, отличающаяся тем, что вторые представления контента, связанные с возобновляемым контекстом просмотра, соответствуют первому одному или более состояниям контента, связанным с возобновляемым контекстом просмотра.
П.24. Система по п.19, отличающаяся тем, что компонент распределенных вычислений дополнительно выполнен с возможностью:
получения запроса последующего возобновляемого контекста просмотра посредством третьего клиентского вычислительного устройства; и предоставления третьих результатов обработки на третье клиентское вычислительное устройство, при котором третьи результаты обработки соответствуют третьим представлениям контента, запрошенным третьим клиентским вычислительным устройством и, при этом, третье клиентское вычислительное устройство выполнено с возможностью отображения третьего представления запрошенного контента.
П.25. Система по п.24, отличающаяся тем, что компонент распределенных вычислений дополнительно выполнен с возможностью дублирования возобновляемого контекста просмотра для генерации последующего возобновляемого контекста просмотра.
П.26. Система по п.25, отличающаяся тем, что пользовательские взаимодействия с представлениями контента, связанными с последующим возобновляемым контекстом просмотра, не изменяют возобновляемый контекст просмотра.
П.27. Система по п.24, отличающаяся тем, что первый возобновляемый контекст удаленного просмотра и второй возобновляемый контекст просмотра связаны с общей информацией о конфигурации браузера.
П.28. Система по п.27, отличающаяся тем, что общая информация о конфигурации браузера включает по меньшей мере одно из: предпочтение просмотру возобновляемого контекста просмотра, информацию о закладках, визуальные предпочтения внешнего вида приложения браузера и историю браузера, общую для первого возобновляемого контекста удаленного просмотра и второго возобновляемого контекста удаленного просмотра.
П.29. Система по п.24, отличающаяся тем, что третье клиентское вычислительное устройство содержит по меньшей мере одно из: первое клиентское вычислительное устройство, второе клиентское вычислительное устройство.
П.30. Система по п.29, отличающаяся тем, что третье клиентское вычислительное устройство выполнено с возможностью отображения первого одного или более представлений запрашиваемого контента и третьего одного или более представлений запрашиваемого контента по меньшей мере в одном из отдельных окон программного приложения браузера, отдельных фреймах браузера и отдельных вкладках браузера.
[154] В то время как были раскрыты и обсуждены иллюстративные варианты воплощения, специалисту в данной области техники будет понятно, что дополнительные или альтернативные варианты воплощения могут быть реализованы в пределах сущности и объема настоящего изобретения. Например, способы, описанные здесь, могут быть использованы без отступления от объема настоящего изобретения для обеспечения удаленного управления обработкой любого количества других программных приложений и процессов, включая, но не ограничиваясь ими, программное обеспечение для редактирования изображений или видео, программное обеспечение баз данных, офисное специализированное программное обеспечение, программное обеспечение для 3d-дизайна, приложения для обработки звука и т.д. Кроме того, хотя многие варианты воплощения были указаны как иллюстративные, специалисту в данной области техники будет понятно, что иллюстративные варианты воплощения не обязательно должны быть объединены или реализованы вместе. Таким образом, некоторые иллюстративные варианты воплощения не обязательно должны быть использованы или реализованы в соответствии с объемом вариаций в настоящем изобретении.
[155] Условные выражения, такие как, среди прочего, "может", "мог бы", "возможно" или"допускает", если специально не указано иное, или если они при использовании в контексте не понимаются иным образом, как правило, предназначены для передачи того, что некоторые варианты воплощения включают, в то время как другие варианты воплощения не включают, определенные отличительные признаки, элементы и/или этапы. Таким образом, такие условные выражения обычно не подразумевают того, что отличительные признаки, элементы и/или этапы в любом случае необходимы для одного или более вариантов воплощения, или, что один или более вариантов воплощения обязательно включают логику для принятия решения, включая или не включая пользовательский ввод или указание, включены ли эти отличительные признаки, элементы и/или этапы или должны ли они быть выполнены в любом конкретном варианте воплощения.
[156] Любые описания способа, элементы или блоки в блок-схемах, описанные здесь и/или изображенные на прилагаемых фигурах, следует понимать как возможное представление модулей, сегментов или фрагментов кода, которые включают одну или более исполняемых инструкций для осуществления конкретных логических функций или этапов в способе. Альтернативные реализации включены в объем описанных здесь вариантов воплощения, в которых элементы или функции могут быть удалены, выполнены в порядке изображения или обсуждения, включая, по существу, одновременность или обратный порядок, в зависимости от участвующей функциональности, что должно быть понятно специалистам в данной области техники. Кроме того, следует понимать, что данные и/или компоненты, описанные выше, могут быть сохранены на машиночитаемом носителе и загружены в память вычислительного устройства с использованием дисковода, связанного с машиночитаемыми запоминающими выполняемыми на компьютере компонентами, такими как CD-ROM, DVD-ROM или же сетевой интерфейс, при этом, компонент и/или данные могут быть включены в отдельное устройство или распределены любым способом. Соответственно, универсальные вычислительные устройства могут быть выполнены с возможностью реализации способов и алгоритмов настоящего изобретения с обработкой и/или выполнением различных данных и/или компонентов, описанных выше.
[157] Следует отметить, что многие изменения и модификации могут быть внесены в описанные выше варианты воплощения, элементы которых следует понимать как примеры среди других приемлемых вариантов. Все такие модификации и изменения должны быть включены в объем настоящего изобретения и защищены прилагаемой формулой изобретения.