автономное выполнение веб-приложений

Классы МПК:G06F17/00 Устройства или методы цифровых вычислений или обработки данных, специально предназначенные для специфических функций
Автор(ы):,
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2007-10-05
публикация патента:

Изобретение относится к области веб-приложений. Техническим результатом является расширение функциональных возможностей веб-приложений за счет обеспечения автономного исполнения веб-приложений. Варианты осуществления обеспечивают локальное хранение веб-исполняемых инструкций и данных в компьютерной системе. Исполняемые веб-инструкции и данные могут использоваться, чтобы локально удовлетворять запросы (направленные домену, который отправил исполняемые инструкции и данные) от модулей, ассоциативно связанных с веб-браузером в компьютерной системе. Соответственно, локально сохраненные веб-исполняемые инструкции и данные могут использоваться в компьютерной системе, чтобы имитировать связь с веб-сайтом, когда веб-сайт иным образом недоступен. 3 н. и 11 з.п. ф-лы, 4 ил. автономное выполнение веб-приложений, патент № 2453911

автономное выполнение веб-приложений, патент № 2453911 автономное выполнение веб-приложений, патент № 2453911 автономное выполнение веб-приложений, патент № 2453911 автономное выполнение веб-приложений, патент № 2453911

Формула изобретения

1. Способ конфигурирования локального содержимого для автономного использования прикладным компонентом Web-браузера, исполняемый в компьютерной системе, соединенной с сетью, причем компьютерная система включает в себя Web-браузер и множество прикладных компонентов Web-браузера для соответствующих Web-приложений, причем Web-браузер сконфигурирован для исполнения прикладных компонентов Web-браузера для доступа к ресурсам из прикладных компонентов Web-сервера соответствующих Web-приложений соответственно, причем способ содержит:

этап, на котором определяют, что Web-приложение приспособлено для автономного исполнения;

этап, на котором обнаруживают, что компонент Web-сервера для Web-приложения доступен посредством сетевой связи на Web-сайте в заданном домене;

этап, на котором посылают на компонент Web-сервера запрос ресурсов для обеспечения автономного исполнения Web-приложения в качестве реакции на обнаружение того, что компонент Web-сервера для Web-приложения доступен посредством сетевой связи, причем данный запрос включает в себя: запрос содержимого, соответствующего Web-приложению, запрос исполняемого прикладного кода для Web-приложения и запрос данных базы данных из базы данных, соответствующей Web-приложению;

перед приемом ресурсов от компонента Web-сервера этап, на котором принимают манифест, который определяет совокупность ресурсов, которую компонент Web-сервера должен послать в компьютерную систему для локального сохранения, и который определяет требования по хранению для сохранения этой совокупности ресурсов, при этом манифест также определяет: модуль исполняемого кода, который должен исполняться локально в компьютерной системе, когда Web-сервер недоступен, и модуль синхронизации, который должен исполняться локально в компьютерной системе, когда имеется сетевая связь с компонентом Web-сервера, для синхронизации локально сохраненной совокупности ресурсов с Web-приложением на Web-сервере;

этап, на котором определяют, превышают ли требования по хранению, определенные в манифесте, квоту, и при определении того, что требования по хранению превышают квоту, предлагают пользователю санкционировать увеличение квоты на величину, достаточную для сохранения совокупности ресурсов;

этап, на котором принимают совокупность ресурсов для Web-приложения от компонента Web-сервера посредством сетевой связи, вслед за отправкой упомянутого запроса, причем совокупность ресурсов в целом представляет локально исполняемую копию, по меньшей мере, части Web-сайта, которая вычленена из упомянутого заданного домена для автономного исполнения в компьютерной системе, при этом совокупность ресурсов включает в себя:

содержимое, соответствующее Web-приложению,

исполняемый код для Web-приложения, включающий в себя модуль исполняемого кода, который должен исполняться локально в компьютерной системе, когда Web-сервер недоступен, причем данный модуль исполняемого кода предназначен для приема запросов от Web-браузера и генерирования соответствующих ответов, и

по меньшей мере, часть данных базы данных из базы данных, соответствующей Web-приложению;

этап, на котором локально сохраняют принятую совокупность ресурсов в компьютерной системе, причем локально сохраняемые содержимое и исполняемый код для Web-приложения сохраняются в кэше Web-браузера, а локально сохраняемые данные базы данных сохраняются в отдельном локальном хранилище, которое отделено от кэша Web-браузера, при этом упомянутые содержимое и данные базы данных доступны упомянутому модулю исполняемого кода без требования наличия сетевой связи с компонентом Web-сервера, так что упомянутые содержимое, модуль исполняемого кода и данные базы данных могут быть использованы для генерирования ответа на последующий запрос от Web-браузера на доступ к упомянутой вычлененной части Web-сайта, когда обнаружено, что компонент Web-сервера недоступен через сетевую связь;

этап, на котором принимают от Web-браузера запрос на доступ к части Web-сайта в упомянутом заданном домене;

по определению того, что связь с упомянутым заданным доменом недоступна, этап, на котором посредством Web-браузера локально загружают упомянутый модуль исполняемого кода из кэша Web-браузера, чтобы удовлетворить данному запросу, тогда как одно или более других приложений Web-браузера продолжают исполняться посредством сетевой связи; и

этап, на котором переопределяют настройки очистки кэша Web-браузера по умолчанию для увеличения периода времени, по истечении которого упомянутые содержимое и исполняемый код для Web-приложения будут удалены из кэша Web-браузера.

2. Способ по п.1, в котором этап, на котором обнаруживают, что компонент Web-сервера для Web-приложения доступен через сетевую связь, содержит этап, на котором повторно устанавливают связь с Web-сервером после того, как Web-сервер был недоступен в течение некоторого периода времени.

3. Способ по п.1, в котором этап, на котором локально сохраняют принятые ресурсы в компьютерной системе, содержит этап, на котором предварительно кэшируют принятые ресурсы перед обнаружением того, что компонент Web-сервера впоследствии недоступен.

4. Способ по п.1, в котором доступ к локальному хранилищу является фильтруемым со стороны исходного домена, так что, по меньшей мере, часть базы данных не является общедоступной для выполнения запросов для любого домена.

5. Способ по п.1, в котором этап, на котором переопределяют настройки очистки кэша Web-браузера по умолчанию, содержит этап, на котором помечают содержимое и исполняемый код для Web-приложения битом закрепления для увеличения периода времени, по истечении которого содержимое и исполняемый код для Web-приложения будут удалены из кэша Web-браузера.

6. Способ автономной работы Web-приложения, выполняемый в компьютерной системе, соединенной с сетью, причем компьютерная система включает в себя Web-браузер и множество прикладных компонентов Web-браузера для соответствующих Web-приложений, причем Web-браузер сконфигурирован исполнять прикладные компоненты Web-браузера для доступа к ресурсам из прикладных компонентов Web-сервера соответствующих Web-приложений соответственно, причем способ содержит:

этап, на котором принимают от Web-браузера запрос на доступ к части Web-сайта в заданном домене, причем данный запрос исходит из прикладного компонента Web-браузера для Web-приложения, пытающегося связаться с соответствующим прикладным компонентом Web-сервера для этого Web-приложения, причем этот прикладной компонент Web-сервера доступен в упомянутой части Web-сайта в упомянутом заданном домене;

этап, на котором обнаруживают, что связь с этим заданным доменом недоступна через сеть, вслед за приемом упомянутого запроса;

этап, на котором определяют, что Web-приложение приспособлено для автономного исполнения;

этап, на котором осуществляют доступ к локально сохраненному манифесту, который определяет совокупность ресурсов и требования по хранению для сохранения этой совокупности ресурсов, при этом совокупность ресурсов содержит локально исполняемую копию Web-приложения, причем совокупность ресурсов включает в себя:

содержимое, соответствующее Web-приложению,

исполняемый код для Web-приложения и,

по меньшей мере, часть данных базы данных из базы данных, соответствующей Web-приложению,

при этом манифест также определяет: модуль исполняемого кода, который включен в совокупность ресурсов и должен исполняться локально в компьютерной системе, когда Web-сервер недоступен, для приема запросов от Web-браузера и генерирования соответствующих ответов и модуль синхронизации, который должен исполняться локально в компьютерной системе, когда имеется сетевая связь с компонентом Web-сервера, для синхронизации локально сохраненной совокупности ресурсов с Web-приложением на Web-сервере;

этап, на котором определяют, превышают ли требования по хранению, определенные в манифесте, квоту, и при определении того, что требования по хранению превышают квоту, предлагают пользователю санкционировать увеличения квоты на величину, достаточную для сохранения совокупности ресурсов;

этап, на котором осуществляют локальный доступ к локально исполняемой копии упомянутой части Web-сайта в компьютерной системе посредством исполнения модуля исполняемого кода, определенного в манифесте, в качестве реакции на определение того, что Web-приложение приспособлено для автономного исполнения;

этап, на котором посредством Web-браузера взаимодействуют с локально исполняемой копией упомянутой части Web-сайта, чтобы идентифицировать один или более ресурсов среди совокупности ресурсов в ответ на упомянутый запрос, тогда как одно или более других приложений Web-браузера продолжают исполняться посредством сетевой связи, при этом при взаимодействии Web-браузера с локально исполняемой копией упомянутой части Web-сайта локально загружают модуль исполняемого кода из кэша Web-браузера;

этап, на котором посредством модуля исполняемого кода обслуживают упомянутые один или более ресурсов из кэша Web-браузера и отдельного локального хранилища для прикладного компонента Web-браузера в ответ на упомянутый запрос без перевода Web-браузера в автономный режим, при этом модуль исполняемого кода осуществляет доступ к упомянутым содержимому и исполняемому коду для Web-приложения из кэша Web-браузера и упомянутым данным базы данных из отдельного локального хранилища, которое отделено от кэша Web-браузера, так что запрошенные Web-приложением ресурсы обслуживаются для прикладного компонента Web-браузера без осуществления какой-либо сетевой связи после приема данного запроса; и

этап, на котором переопределяют настройки очистки кэша Web-браузера по умолчанию для увеличения периода времени, по истечении которого упомянутые содержимое и исполняемый код для Web-приложения будут удалены из кэша Web-браузера.

7. Способ по п.6, в котором этап, на котором принимают запрос, содержит этап, на котором принимают URL для прикладного компонента Web-сервера.

8. Способ по п.6, в котором этап, на котором определяют, что Web-приложение приспособлено для автономного исполнения, содержит этап, на котором обращаются к списку приложений, которые приспособлены для автономного исполнения.

9. Способ по п.6, в котором этап, на котором посредством модуля исполняемого кода обслуживают упомянутые один или более ресурсов из кэша Web-браузера и отдельного локального хранилища для прикладного компонента Web-браузера, дополнительно содержит:

этап, на котором направляют упомянутый запрос в упомянутый загруженный модуль;

этап, на котором данный загруженный модуль формулирует полный ответ на запрос, используя только упомянутые один или более ресурсов, к которым осуществлен доступ в кэше Web-браузера и отдельном локальном хранилище; и

этап, на котором передают этот полный ответ прикладному компоненту Web-браузера.

10. Компьютерная система, содержащая:

один или более процессоров;

системную память; и

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

определяют, что Web-приложение приспособлено для автономного исполнения;

обнаруживают, что компонент Web-сервера для Web-приложения доступен посредством сетевой связи на Web-сайте в заданном домене;

посылают на компонент Web-сервера запрос ресурсов для обеспечения автономного исполнения Web-приложения в качестве реакции на обнаружение того, что компонент Web-сервера для Web-приложения доступен посредством сетевой связи, причем данный запрос включает в себя: запрос содержимого, соответствующего Web-приложению, запрос исполняемого прикладного кода для Web-приложения и запрос данных базы данных из базы данных, соответствующей Web-приложению;

перед приемом ресурсов от компонента Web-сервера принимают манифест, который определяет совокупность ресурсов, которую компонент Web-сервера должен послать в компьютерную систему для локального сохранения, и который определяет требования по хранению для сохранения этой совокупности ресурсов, при этом манифест также определяет: модуль исполняемого кода, который должен исполняться локально в компьютерной системе, когда Web-сервер недоступен, и модуль синхронизации, который должен исполняться локально в компьютерной системе, когда имеется сетевая связь с компонентом Web-сервера, для синхронизации локально сохраненной совокупности ресурсов с Web-приложением на Web-сервере;

определяют, превышают ли требования по хранению, определенные в манифесте, квоту, и при определении того, что требования по хранению превышают квоту, предлагают пользователю санкционировать увеличение квоты на величину, достаточную для сохранения совокупности ресурсов;

принимают совокупность ресурсов для Web-приложения от компонента Web-сервера посредством сетевой связи, вслед за отправкой упомянутого запроса, причем совокупность ресурсов в целом представляет локально исполняемую копию, по меньшей мере, части Web-сайта, которая вычленена из упомянутого заданного домена для автономного исполнения в компьютерной системе, при этом совокупность ресурсов включает в себя:

содержимое, соответствующее Web-приложению,

исполняемый код для Web-приложения, включающий в себя модуль исполняемого кода, который должен исполняться локально в компьютерной системе, когда Web-сервер недоступен, причем данный модуль исполняемого кода предназначен для приема запросов от Web-браузера и генерирования соответствующих ответов, и

по меньшей мере, часть данных базы данных из базы данных, соответствующей Web-приложению;

локально сохраняют принятую совокупность ресурсов в компьютерной системе, причем локально сохраняемые содержимое и исполняемый код для Web-приложения сохраняются в кэше Web-браузера, а локально сохраняемые данные базы данных сохраняются в отдельном локальном хранилище, которое отделено от кэша Web-браузера, при этом упомянутые содержимое и данные базы данных доступны упомянутому модулю исполняемого кода без требования наличия сетевой связи с компонентом Web-сервера, так что упомянутые содержимое, модуль исполняемого кода и данные базы данных могут быть использованы для удовлетворения последующего запроса от Web-браузера на доступ к упомянутой вычлененной части Web-сайта, когда обнаружено, что компонент Web-сервера недоступен через сетевую связь; и

переопределяют настройки очистки кэша Web-браузера по умолчанию для увеличения периода времени, по истечении которого упомянутые содержимое и исполняемый код для Web-приложения будут удалены из кэша Web-браузера,

при этом на упомянутых одном или более физических машиночитаемых носителях сохранены машиноисполняемые инструкции, которые при их исполнении процессором предписывают компьютерной системе выполнять способ автономной работы Web-приложения, включающий в себя выполнение следующих этапов, на которых:

принимают от Web-браузера запрос на доступ к части Web-сайта в заданном домене, причем данный запрос исходит из прикладного компонента Web-браузера для Web-приложения, пытающегося связаться с соответствующим прикладным компонентом Web-сервера для этого Web-приложения, причем этот прикладной компонент Web-сервера доступен в упомянутой части Web-сайта в упомянутом заданном домене;

обнаруживают, что связь с этим заданным доменом недоступна через сеть, вслед за приемом упомянутого запроса;

определяют, что Web-приложение приспособлено для автономного исполнения;

осуществляют локальный доступ к локально исполняемой копии упомянутой части Web-сайта в компьютерной системе в качестве реакции на определение того, что Web-приложение приспособлено для автономного исполнения, причем эта локально исполняемая копия была ранее вычленена из упомянутого заданного домена для локального исполнения в компьютерной системе, при этом данная локально исполняемая копия упомянутой части Web-сайта включает в себя совокупность ресурсов, локально сохраненных в компьютерной системе, причем данная совокупность ресурсов включает в себя:

содержимое, соответствующее Web-приложению,

исполняемый код для Web-приложения, включающий в себя модуль исполняемого кода, который должен исполняться локально в компьютерной системе, когда Web-сервер недоступен, причем данный модуль исполняемого кода предназначен для приема запросов от Web-браузера и генерирования соответствующих ответов, и

по меньшей мере, часть данных базы данных из базы данных, соответствующей Web-приложению;

посредством Web-браузера взаимодействуют с локально исполняемой копией упомянутой части Web-сайта, чтобы идентифицировать один или более ресурсов среди совокупности ресурсов в ответ на упомянутый запрос, тогда как одно или более других приложений Web-браузера продолжают исполняться посредством сетевой связи, при этом при взаимодействии Web-браузера с локально исполняемой копией упомянутой части Web-сайта локально загружают модуль исполняемого кода из кэша Web-браузера;

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

11. Компьютерная система по п.10, в которой локальное сохранение принятой совокупности ресурсов в компьютерной системе содержит этап, на котором предварительно кэшируют принятую совокупность ресурсов перед обнаружением того, что компонент Web-сервера впоследствии недоступен.

12. Компьютерная система по п.10, в которой локальное сохранение совокупности ресурсов в компьютерной системе содержит этап, на котором синхронизируют локально сохраненные ресурсы с ресурсами, доступными компоненту Web-сервера в упомянутом заданном домене.

13. Компьютерная система по п.10, дополнительно содержащая: машиноисполняемые инструкции, которые при их исполнении предписывают компьютерной системе отправлять уведомление пользователю о доступности компонента Web-сервера в качестве реакции на обнаружение того, что компонент Web-сервера для Web-приложения доступен посредством сетевой связи.

14. Компьютерная система по п.10, в которой обслуживание модулем исполняемого кода одного или более ресурсов из кэша Web-браузера и отдельного локального хранилища для прикладного компонента Web-браузера дополнительно содержит этапы, на которых:

направляют упомянутый запрос упомянутому локально загруженному модулю;

посредством локально загруженного модуля формулируют полный ответ на запрос, используя только упомянутые один или более ресурсов, к которым осуществлен доступ из кэша Web-браузера и отдельного локального хранилища; и

передают этот полный ответ прикладному компоненту Web-браузера.

Описание изобретения к патенту

Уровень техники

Компьютерные системы и связанная технология затрагивают множество аспектов общества. Несомненно, способность компьютерной системы обрабатывать информацию преобразовала образ жизни, которым мы живем и работаем. Компьютерные системы сегодня, как правило, выполняют множество задач (к примеру, обработку текста, планирование, бухгалтерский учет и т.д.), которые до появления компьютерных систем выполнялись вручную. Совсем недавно компьютерные системы были связаны друг с другом и с другими электронными устройствами для того, чтобы сформировать проводные и беспроводные компьютерные сети, по которым компьютерные системы и другие электронные устройства могут передавать электронные данные. Соответственно, производительность многих вычислительных задач распределена по ряду разных компьютерных систем и/или ряду разных вычислительных компонентов.

Одной общей формой сетевой связи является обмен электронными сообщениями по всемирной паутине ("WWW"). Содержимое во всемирной паутине в типичном варианте доступно в клиент/серверной модели. "Веб-браузер" клиентской компьютерной системы отправляет запрос, чтобы получить доступ к содержимому, которое предоставляется "Веб-сервером" серверной компьютерной системы (например, посредством ввода унифицированного указателя ресурса ("URL") в веб-браузере). Если пользователь веб-браузера авторизован, чтобы получить доступ к содержимому, веб-сервер в типичном варианте предоставляет содержимое веб-браузеру. В веб-среде содержимое и запросы содержимого часто передаются с помощью протокола передачи гипертекста ("HTTP"). Веб-содержимое может быть предоставлено в страницах на языке гипертекстовой разметки ("HTML"), таблицах стилей, изображениях, скриптах и т.д.

Большинство, если не все, из веб-браузеров кэшируют части веб-содержимого в общем месте хранения (кэше браузера) так, что последующие воспроизведения веб-страницы могут быть представлены более эффективно. Например, когда веб-браузер принимает веб-страницу от веб-сервера, веб-браузер может локально кэшировать части содержимого, включенного в веб-страницу. Таким образом, если веб-браузер впоследствии направляется на ту же самую веб-страницу, веб-браузер может проверить общее место хранения на предмет кэшированных частей содержимого, и любые кэшированные части содержимого могут быть объединены с другим содержимым, принятым через сеть, чтобы создать веб-страницу. Соответственно, использование локально кэшированного содержимого потенциально уменьшает количество данных, которые передаются через сеть, чтобы отобразить содержимое из веб-сервера. Как результат, веб-страницы могут воспроизводиться быстрее, улучшая восприятие пользователем.

Однако, в типичном варианте, даже если только часть веб-страницы изменяется, вся страница повторно загружается по сети для отображения в веб-браузере. Например, может быть, что веб-браузер обращается к веб-странице, загружает содержимое веб-страницы через сетевое соединение и кэширует содержимое из веб-страницы. Если содержимое веб-страницы впоследствии изменяется, веб-браузер может запросить повторную загрузку всей веб-страницы, даже если изменились только небольшие части веб-страницы.

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

Некоторые веб-приложения также разрешают веб-браузерам взаимодействовать с данными из базы данных (например, SQL-базы данных). Веб-сервер принимает запрос от веб-браузера, обращается к соответствующей части данных базы данных и возвращает данные базы данных веб-браузеру. В зависимости от конфигурации веб-приложения пользователь также может иметь возможность изменять части данных базы данных через веб-браузер. Например, пользователь может иметь возможность создавать и модифицировать записи базы данных через веб-браузер. В некоторых окружениях пользователь имеет возможность осуществлять SQL-операции (CREATE TABLE, SELECT, INSERT, UPDATE, DELETE и т.д.) через веб-браузер. Таким образом, веб-браузер, по существу, предоставляет пользовательский интерфейс для манипулирования данными базы данных через сеть (например, Интернет).

Однако, в типичном варианте, не существует механизма для веб-браузера, чтобы соответствующим образом кэшировать табличные данные (например, данные из базы данных). В типичном варианте пользователь не имеет доступа ко всем данным в базе данных в любое время. Таким образом, кэширование любых принятых данных базы данных предоставляет неполный (и потенциально нефункционирующий) набор данных. Кроме того, так как содержимое в типичном варианте кэшировано в общем местоположении (кэше браузера), кэширование данных базы данных с одного веб-сайта (или домена) потенциально делает кэшированные данные базы данных доступными любому другому веб-сайту (или домену), к которому обращается веб-браузер. Например, кэшированные корпоративные финансовые данные попадают под риск, когда веб-браузер впоследствии (и потенциально неведомо для пользователя) направляется на злонамеренный веб-сайт (который может исследовать кэш браузера).

Кроме того, так как многие базы данных содержат большие объемы данных, локальное кэширование данных базы данных может быстро заполнить выделенное пространство кэша браузера.

Дополнительно, большинство, если не все, из браузеров не имеют возможности работать в "автономном" режиме. То есть веб-браузеры в типичном варианте не представляют значащее содержимое, когда веб-сайт недоступен (например, когда активное сетевое соединение не обнаружено или соответствующий веб-сервер выключен), без перевода браузера в автономный режим для всех веб-сайтов. Например, когда веб-браузер пытается загрузить ресурс, такой как, например, HTML-страница или изображение, из недоступного веб-сервера, веб-браузеру не удается воспроизвести ресурс (даже если ресурс локально кэширован). Таким образом, если данные базы данных (или любой другой тип содержимого) были кэшированы, веб-браузер не будет иметь возможности представить данные базы данных (или другой тип содержимого) в автономном режиме.

Краткая сущность изобретения

Настоящее изобретение распространяется на способы, системы и компьютерные программные продукты для автономного выполнения веб-приложений. В некоторых вариантах осуществления компьютерная система конфигурирует локальное содержимое для автономного использования прикладным компонентом веб-браузера веб-приложения. Компьютерная система определяет, что веб-приложению разрешено автономное выполнение. Компьютерная система обнаруживает, что серверный веб-компонент для веб-приложения доступен через сеть связи.

Компьютерная система принимает ресурсы для веб-приложения от серверного веб-компонента через сеть связи. Компьютерная система локально сохраняет принятые ресурсы в компьютерной системе. Локально сохраненная копия ресурсов доступна клиентскому компоненту веб-браузера без необходимости наличия сети связи. По существу, к локально сохраненным ресурсам может быть осуществлен доступ в ответ на запрос от клиентского веб-компонента, когда обнаружено, что серверный веб-компонент недоступен через сеть связи. Компьютерная система конфигурирует локально сохраненные ресурсы, чтобы поддерживать их локально сохраненными в компьютерной системе в течение указанного периода времени, таким образом отменяя настройки очистки кэша веб-браузера по умолчанию.

В других вариантах осуществления компьютерная система запускает веб-приложение автономно. Компонент приложения веб-браузера для веб-приложения отправляет онлайновый запрос ресурсов веб-приложения соответствующему прикладному компоненту веб-сервера для веб-приложения по сети. Компьютерная система обнаруживает, что запрос не исполнен. Компьютерная система определяет, что веб-приложению разрешено автономное выполнение. Компьютерная система конфигурирует веб-браузер, чтобы выполнять приложение веб-браузера автономно, в то время как другие приложения веб-браузера остаются сконфигурированными так, чтобы выполняться в режиме онлайн. Компьютерная система обслуживает запрошенные ресурсы веб-приложения из локального хранилища в компьютерной системе без перевода веб-браузера в автономный режим.

Эта сущность изобретения предоставлена для того, чтобы представить выбор концепций в упрощенной форме, которые дополнительно описаны ниже в подробном описании. Эта сущность не предназначена для того, чтобы идентифицировать ключевые признаки или важнейшие признаки заявляемого предмета изобретения, а также не предназначена для того, чтобы быть использованной в качестве помощи при определении области применения заявляемого предмета изобретения.

Дополнительные признаки и преимущества изобретения будут частично изложены в описании, которое следует ниже, и частично будут явствовать из описания или могут быть изучены при практическом использовании изобретения. Признаки и преимущества изобретения могут быть реализованы и получены посредством инструментов и комбинаций, детально указанных в прилагаемой формуле. Эти и другие признаки настоящего изобретения должны стать более очевидными из следующего описания и формулы изобретения или могут быть изучены при практическом использовании изобретения, как изложено далее.

Краткое описание чертежей

Чтобы описать способ, которым могут быть получены вышеупомянутые и другие преимущества и признаки изобретения, более подробное описание изобретения, вкратце описанного выше, должно быть представлено посредством ссылки на его конкретные варианты осуществления, которые проиллюстрированы в прилагаемых чертежах. При условии того, что эти чертежи изображают только типичные варианты осуществления изобретения и поэтому не должны рассматриваться как ограничивающие область его применения, изобретение описывается и поясняется с помощью дополнительной специфики и подробностей посредством использования прилагаемых чертежей, на которых:

фиг.1A иллюстрирует пример компьютерной архитектуры, которая облегчает конфигурирование локального содержимого для автономного использования прикладным компонентом веб-браузера веб-приложения;

фиг.1B иллюстрирует пример компьютерной архитектуры, которая облегчает автономную работу веб-приложения;

фиг.2 иллюстрирует блок-схему примерного способа конфигурирования локального содержимого для автономного использования прикладным компонентом веб-браузера веб-приложения;

фиг.3 иллюстрирует блок-схему примерного способа автономной работы веб-приложения.

Подробное описание изобретения

Настоящее изобретение распространяется на способы, системы и компьютерные программные продукты для автономного выполнения веб-приложений. В некоторых вариантах осуществления компьютерная система конфигурирует локальное содержимое для автономного использования прикладным компонентом веб-браузера веб-приложения. Компьютерная система определяет, что веб-приложению разрешено автономное выполнение. Компьютерная система обнаруживает, что серверный веб-компонент для веб-приложения доступен через сеть связи.

Компьютерная система принимает ресурсы для веб-приложения от серверного веб-компонента через сеть связи. Компьютерная система локально сохраняет принятые ресурсы в компьютерной системе. Локально сохраненная копия ресурсов доступна клиентскому компоненту веб-браузера без необходимости наличия сети связи. По существу, к локально сохраненным ресурсам может быть осуществлен доступ в ответ на запрос от клиентского веб-компонента, когда обнаружено, что серверный веб-компонент недоступен через сеть связи. Компьютерная система конфигурирует локально сохраненные ресурсы, чтобы поддерживать их локально сохраненными в компьютерной системе в течение указанного периода времени, таким образом отменяя настройки очистки кэша веб-браузера по умолчанию.

В других вариантах осуществления компьютерная система запускает веб-приложение автономно. Компонент приложения веб-браузера для веб-приложения отправляет онлайновый запрос ресурсов веб-приложения соответствующему прикладному компоненту веб-сервера для веб-приложения по сети. Компьютерная система обнаруживает, что запрос не исполнен. Компьютерная система определяет, что веб-приложению разрешено автономное выполнение. Компьютерная система конфигурирует веб-браузер, чтобы выполнять приложение веб-браузера автономно, в то время как другие приложения веб-браузера остаются сконфигурированными так, чтобы выполняться в режиме онлайн. Компьютерная система использует запрошенные ресурсы веб-приложения из локального хранилища в компьютерной системе без перевода веб-браузера в автономный режим.

Варианты осуществления настоящего изобретения могут содержать компьютер общего или специального назначения, включающий в себя различные аппаратные средства компьютера, которые обсуждаются более подробно ниже. Варианты осуществления в области применения настоящего изобретения также включают в себя компьютерно-читаемые носители для передачи или сохранения на них компьютерно-исполняемых инструкций или структур данных. Этими компьютерно-читаемыми носителями могут быть любые доступные носители, к которым можно осуществлять доступ посредством компьютера общего назначения или специального назначения. В качестве примера, а не ограничения, компьютерно-читаемые носители могут содержать физические (или записываемого типа) компьютерно-читаемые носители хранения, такие как RAM, ROM, EEPROM, CD-ROM или другое хранилище на оптических дисках, хранилище на магнитных дисках или другие магнитные устройства хранения, либо любой другой носитель, который может быть использован для того, чтобы хранить требуемое средство программного кода в форме компьютерно-исполняемых инструкций или структур данных, к которым можно осуществлять доступ посредством компьютера общего назначения или специального назначения.

В этом описании и в последующей формуле изобретения "сеть" определена как одна или более линий передачи данных, которые разрешают передачу электронных данных между компьютерными системами и/или модулями. Когда информация переносится или предоставляется по сети или другому подключению связи (проводному, беспроводному или комбинации проводного и беспроводного) в компьютер, компьютер надлежащим образом рассматривает соединение как компьютерно-читаемый носитель. Таким образом, в качестве примера, а не ограничения, компьютерно-читаемые носители также могут содержать сеть или линии передачи данных, которые могут использоваться, чтобы переносить или хранить средство программного кода в форме компьютерно-исполняемых инструкций или структур данных, и к которым может быть осуществлен доступ посредством компьютера общего или специального назначения.

Компьютерно-читаемые инструкции содержат, например, инструкции и данные, которые инструктируют компьютеру общего назначения, компьютеру специального назначения или устройству обработки специального назначения выполнять определенную функцию или группу функций. Компьютерно-исполняемые инструкции могут быть, например, двоичным кодом, инструкциями промежуточного формата, например, на языке ассемблера, или даже исходным кодом. Хотя предмет изобретения описан на языке, характерном для структурных признаков и/или методологических действий, следует понимать, что предмет изобретения, заданный в прилагаемой формуле изобретения, не обязательно ограничен характерными признаками или действиями, описанными выше. Наоборот, описанные в данном документе характерные признаки и действия раскрываются как примерные формы реализации формулы изобретения.

Специалисты в данной области техники примут во внимание, что изобретение может быть применено на практике в сетевых вычислительных окружениях со многими типами конфигураций компьютерной системы, включающих в себя персональные компьютеры, настольные компьютеры, портативные компьютеры, процессоры для обработки сообщений, "карманные" устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронную аппаратуру, сетевые ПК, миникомпьютеры, мейнфреймы, мобильные телефоны, PDA, пейджеры и т.п. Изобретение также может быть применено на практике в распределенных системных окружениях, где локальная и удаленная компьютерные системы, которые связаны (либо проводными линиями передачи данных, беспроводными линиями передачи данных, либо комбинацией проводных и беспроводных линий передачи данных) через сеть, обе выполняют задачи. В распределенном системном окружении программные модули могут размещаться и на локальных, и на удаленных устройствах хранения данных.

Фиг.1A иллюстрирует пример компьютерной архитектуры 100, которая облегчает конфигурирование локального содержимого для автономного использования прикладным компонентом веб-браузера веб-приложения. Компьютерная архитектура 100 включает в себя компьютерную систему 101, сеть 131 и домен 172. В компьютерной архитектуре 100 изображены различные компоненты, включающие в себя приложение 191C, веб-браузер 104, приложение 191S и веб-сервер 173. Каждый из различных компонентов может быть соединен с сетью 131, такой как, например, локальная вычислительная сеть ("LAN"), глобальная вычислительная сеть ("WAN") или даже Интернет. Таким образом, различные компоненты могут принимать данные от и отправлять данные к другим компонентам, соединенным с сетью. Соответственно, компоненты могут создавать связанные с сообщениями данные и обмениваться связанными с сообщениями данными (например, дейтаграммы протокола Интернета ("IP") и другие протоколы более высокого уровня, которые используют IP-дейтаграммы, такие как протокол управления передачей ("TCP"), протокол передачи гипертекста ("HTTP"), простой протокол пересылки почты ("SMTP") и т.д.) по сети. Например, компоненты могут обмениваться конвертами простого протокола доступа к объектам ("SOAP"), содержащими связанные с веб-службой данные. В некоторых вариантах осуществления приложение 191C и приложение 191S являются разными частями распределенного приложения, такого как, например, приложение веб-служб.

Веб-браузер 104 может быть сконфигурирован так, чтобы запрашивать веб-содержимое из доменов, таких как, например, домен 171, доступный через сеть 131. Веб-содержимое может включать в себя текстовые данные, данные изображений, аудио/видеоданные и т.д. Одно или более веб-приложений, таких как, например, приложение 191C, могут быть сконфигурированы, чтобы работать в веб-браузере 104. Веб-приложение может быть скриптом и/или другими компьютерно-исполняемыми инструкциями. Веб-приложения могут запрашивать другие типы данных, такие как, например, данные базы данных, из доменов, доступных через сеть 131.

Домен 171 может быть идентифицирован доменным именем 172, таким как, например, именем службы доменных имен ("DNS"), которое является разрешимым в IP-адрес. Доменное имя 172 может быть введено в веб-браузер (потенциально вместе с другой идентифицирующей информацией для указанного приложения в домене 171), чтобы указать браузеру запросить содержимое из веб-сервера 173. Доменное имя вместе с другой идентифицирующей информацией может быть включено в унифицированный указатель ресурса ("URL"), введенный в веб-браузер. В зависимости от типа запроса и/или принятого URL веб-сервер 173 может получить доступ к содержимому из содержимого 175 и/или инициировать веб-приложение, такое как, например, приложение 191S. Приложение 191S может запросить данные из других местоположений в домене 171, таких как, например, из базы 174 данных (например, SQL или другой реляционной базы данных). Веб-сервер 173 может включить содержимое из содержимого 175 и/или данные из базы 174 данных в ответ на запрос веб-браузера.

Кэш 106 браузера сконфигурирован так, чтобы кэшировать компоненты, включенные в веб-содержимое, принятое от доменов, включающих в себя домен 171. Кэшированные компоненты могут впоследствии быть сделаны доступными, чтобы удовлетворять веб-запросам, отправленным из веб-браузера 104. Например, кэшированные компоненты могут быть частями содержимого 155, доступного непосредственно из кэша 106 браузера (без необходимости передачи кэшированных компонентов через сеть 131), и могут быть воспроизведены в веб-браузере 104.

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

Модуль 107 доступа к локальному хранилищу управляет доступом к локальному хранилищу 108. Локальное хранилище 108 сконфигурировано, чтобы хранить данные базы данных, принятые в ответ на веб-запросы. Данные базы данных, сохраненные в локальном хранилище 108, могут быть доступны посредством веб-браузера 104 (без необходимости передачи данных базы данных через сеть 131) и воспроизведены в веб-приложении в рамках веб-браузера 104. Данные базы данных могут быть сохранены в локальном хранилище 108 вместе с указанием домена, который отправил данные базы данных веб-браузеру 104.

Модуль 107 доступа к локальному хранилищу может фильтровать запросы от модулей кодов сценариев из веб-серверов, запрашивающих доступ к данным базы данных, сохраненным в локальном хранилище 108, так, что один домен не может осуществить доступ к данным базы данных других доменов (т.е. данные базы данных могут быть изолированы доменом). Таким образом, хотя данные базы данных сохранены в локальном хранилище 108, данные базы данных, как правило, недоступны, чтобы удовлетворить запросы любого домена.

Менеджер 122 автономного режима сконфигурирован так, чтобы управлять автономным состоянием приложений. Когда менеджер 122 автономного режима принимает указание о том, что приложению разрешено автономное выполнение, менеджер 122 автономного режима может попытаться заполнить кэш 106 браузера и/или локальное хранилище компонентами и/или данными для автономной работы приложения. То есть менеджер 122 автономного режима может инициировать связь с веб-сервером, который находится в режиме онлайн, чтобы загрузить компоненты и/или данные, потенциально необходимые для автономного выполнения приложения в случае, когда связь с веб-сервером впоследствии теряется.

Менеджер 122 автономного режима может продлить срок действия компонентов, которые должны использоваться для автономного выполнения, чтобы обойти политики очистки кэша веб-браузера 104 по умолчанию. Например, менеджер 122 автономного режима может установить срок действия компонентов, которые должны использоваться для автономного выполнения, в 30 дней. Продление срока действия компонентов, которые должны использоваться для автономного выполнения, может не допустить удаление компонентов в браузере, когда веб-браузер 104 направляется на другие веб-сайты.

Конфигурационный интерфейс 102 упрощает пользовательскую конфигурацию разрешенных для выполнения в автономном режиме приложений и квот хранения для доменов. Например, пользователь может выбрать приложение 191C в качестве приложения, которому разрешено автономное выполнение, таким образом включая приложение 191C в приложения 121, которым разрешено автономное выполнение (например, список приложений, которые пользователь компьютерной системы 101 идентифицировал как разрешенные для автономного выполнения). Пользователь также может изначально установить, равно как и изменить, значение квоты хранения для домена. Например, пользователь может установить значение квоты 112 для домена 171 (представленного доменным именем 172) в пределах данных квот. Как правило, квота является размером пространства хранения, выделенным домену для хранения элементов локально в компьютерной системе 101 (например, в кэше 106 браузера и/или локальном хранилище 108). Конфигурационный интерфейс 102 может представлять элементы управления пользовательского интерфейса для приема и осуществления пользовательских настроек для разрешенных для автономного выполнения приложений и квот доменов. Хотя изображены отдельно, менеджер 122 автономного режима и модуль 107 доступа к локальному хранилищу могут совместно взаимодействовать, так что суммарное пространство хранения, потребляемое в кэше 106 браузера и в локальном хранилище 108 для указанного домена, не превышает квоту для указанного домена.

Детектор 123 автономного режима сконфигурирован так, чтобы обнаруживать, когда веб-браузер 104 или веб-приложение не может связаться с веб-сервером. Связь с веб-сервером может быть недоступна по ряду причин, таких как, например, неисправность линии связи с Интернетом или по Интернету, аварийный отказ веб-браузера и т.д. В некоторых вариантах осуществления детектор 123 автономного режима пытается связаться с веб-браузером время от времени или в определенном интервале, чтобы определить, доступна ли связь с веб-сервером.

Детектор 123 автономного режима может уведомить менеджер 122 автономного режима и/или модуль 107 доступа к локальному хранилищу, когда состояние связи с веб-сервером изменяется. Например, детектор 123 автономного режима может отправить уведомление, когда доступный веб-сервер становится недоступным (например, сбой связи, аварийный отказ веб-сервера и т.д.) и когда недоступный веб-сервер становится доступным (например, связь восстановлена, веб-сервер начинает работать после перезагрузки и т.д.). Детектор 123 автономного режима может также отправлять уведомления пользовательского интерфейса (например, через конфигурационный интерфейс 102), предупреждающие пользователя о переходе в режим доступности веб-сервера.

Фиг.2 иллюстрирует блок-схему примерного способа 200 конфигурирования локального содержимого для автономного использования прикладным компонентом веб-браузера веб-приложения. Способ 200 будет описан относительно компонентов и данных компьютерной архитектуры 100 на фиг.1A.

Способ 200 включает в себя этап определения того, что веб-приложению разрешено автономное выполнение (этап 201). Например, менеджер 122 автономного режима может обратиться к приложениям 121, которым разрешен автономный режим, чтобы определить, что приложению 191C разрешено автономное выполнение. Способ 200 включает в себя этап обнаружения того, что серверный веб-компонент для веб-приложения доступен через сеть связи (этап 202). Например, детектор 123 автономного режима может обнаружить, что веб-сервер 173, приложение 191S и другие компоненты в домене 172 доступны для обмена данными по сети 131.

В ответ на обнаружение доступной связи веб-браузер 104 может отправить запрос ресурсов, чтобы упростить автономное выполнение приложения 191C. Например, веб-браузер 104 может отправить запрос 199 веб-серверу 173. Запрос 199 может включать в себя запрос разнообразных различных ресурсов, включающих в себя, но не только, содержимое из содержимого 175, данные базы данных из базы 174 данных и части исполняемых инструкций (например, сценарии), соответствующие приложению 191S.

Веб-сервер 173 может принять запрос 199. В ответ на принятый запрос 199 веб-сервер 173 может собрать совокупность ресурсов (например, ресурсы 193B), чтобы упростить автономное выполнение приложения 191C. То есть веб-сервер 173 может "отрывать" (например, делать функциональную копию) часть веб-сайта в домене 172 для передачи компьютерной системе 101. Веб-сервер 173 может отправить совокупность ресурсов компьютерной системе 101. Например, в ответ на запрос 199 веб-сервер 173 может отправить ресурсы 193B (совокупность ресурсов для упрощения автономного выполнения приложения 191C) компьютерной системе 101. Ресурсы 193B могут включать в себя ресурсы 194B (код приложения 191S, содержимое из содержимого 175 и т.д.) и базу 174 данных (или ее часть).

В некоторых вариантах осуществления домен также может отправлять манифест ресурсов перед отправкой совокупности ресурсов. Манифест ресурсов может идентифицировать ресурсы, которые должны быть включены в совокупность ресурсов, и может указать требования к хранилищу для хранения совокупности ресурсов. Манифест ресурсов может также указать модуль, который должен выполняться локально, чтобы упростить автономное выполнение приложения, когда принят URL (который иначе вызовет удаленное выполнение в веб-сервере или серверном компоненте распределенного приложения), соответствующий приложению. Манифест ресурсов может также указывать модуль, который должен выполняться, чтобы синхронизировать ресурсы для упрощения автономного выполнения приложения. Ресурсы могут быть синхронизированы, когда ранее недоступный веб-сервер и/или приложение становится доступным, периодически с доступным веб-сервером и/или приложением или в ответ на пользовательский запрос на синхронизацию с доступным веб-сервером и/или приложением. Модули для инициирования автономного выполнения и модули для синхронизации ресурсов могут сами быть ресурсами, которые включены в совокупность ресурсов для упрощения автономного выполнения приложения.

Как изображено в компьютерной архитектуре 100, например, веб-сервер 173 может отправить манифест 192 компьютерной системе 101. Манифест 192 может идентифицировать ресурсы в ресурсах 193B, указать требования хранения для ресурсов 193B, указать модуль, который должен выполняться для автономного выполнения приложения 191C, когда URL, соответствующий веб-серверу 173 и/или приложению 191S, принят в веб-браузере 104, и указать модуль, который должен выполняться, чтобы синхронизировать ресурсы 193B. Ниже приведен пример XML-манифеста ресурсов (номера строк включены с целью ссылок):

1. <?xml version="1.0" encoding="utf-8" ?>

2. <resources name="Expense Report">

3. <resource src="default.css?rnd=K5E67BAY6MHQL6Y21ET9WSUR"/>

4.

5. <resource src="images/reconcile.jpg"/>

6. <resource src="images/personal.jpg"/>

7. <resource src="images/dispute.jpg"/>

8. <resource src="images/hold.jpg"/>

9.

10. <resource src="ExpenseReportService.asmx/js"/>

11. <resource src="ExpenseReportLineItemService.asmx/js"/>

12.

13. <resource src="DefaultSync.aspx"/>

14.

15. <resource src="ExpenseReports.aspx"/>

16. <resource src="ExpenseReport.aspx"/>

17.

18. <runOfflineUrl src="ExpenseReports.aspx"/>

19. <takeOnlineOrSyncUrl src="DefaultSync.aspx"/>

20. <database spaceNeeded="60"/>

21. </resources>

В примере манифеста строки 3-16 идентифицируют ресурсы для упрощения автономного выполнения приложения "Expense Report" ("Отчет о расходах") (идентифицированного в строке 2). Строка 20 указывает требования хранения, равные "60", для хранения ресурсов, идентифицированных в манифесте (например, в мегабайтах). Строка 18 указывает, что модуль "ExpenseReports.aspx" (например, сценарий) должен выполняться локально (например, в компьютерной системе 101), чтобы инициировать автономное выполнение приложения "Expense Report". ExpenseReports.aspx идентифицирован в качестве ресурса в строке 15. Строка 19 указывает, что модуль "DefaultSync.aspx" (например, сценарий) должен выполняться локально, чтобы синхронизировать ресурсы, идентифицированные в примерном манифесте. "DefaultSync.aspx" идентифицирован в качестве ресурса в строке 13.

Способ 200 включает в себя этап приема ресурсов для веб-приложения от серверного веб-компонента через сеть связи (этап 203). Например, веб-браузер 104 может принять ресурсы 193B из домена 171.

В некоторых вариантах осуществления перед приемом ресурсов 193B менеджер 122 автономного режима и/или модуль 107 доступа к локальному хранилищу определяют, что хранение ресурсов 193B является соответствующим, на основе квоты 112. То есть, менеджер 122 автономного режима и/или модуль 107 доступа к локальному хранилищу проверяют, что выделенного пространства хранения для домена 171 достаточно, чтобы хранить ресурсы 194B и базу 174 данных. Если выделенного пространства хранения достаточно, веб-браузер 104 может принять ресурсы 193B.

Если выделенного пространства хранения недостаточно на основе квоты 112, ресурсы 193B (или их часть) могут быть отброшены. Альтернативно, конфигурационный интерфейс 102 может уведомить пользователя компьютерной системы 101 о том, что выделенного пространства хранения для домена 172 недостаточно, чтобы хранить ресурсы 193B. Соответственно, пользователь может затем увеличить квоту 112 через конфигурационный интерфейс 102 до величины, достаточной для хранения ресурсов 193B. Если пользователь выбирает не увеличивать квоту 112 до величины, достаточной для хранения ресурсов 193B, ресурсы 193B (или их часть) могут быть отброшены.

Способ 200 включает в себя этап локального сохранения принятых ресурсов в компьютерной системе, локально сохраненная копия ресурсов доступна клиентскому компоненту веб-браузера, локально сохраненные ресурсы доступны клиентскому веб-компоненту без необходимости наличия сети связи, так что к локально сохраненным ресурсам может быть осуществлен доступ в ответ на запрос от клиентского веб-компонента, когда обнаружено, что серверный веб-компонент недоступен через сеть связи (этап 204). Например, веб-браузер 104 может хранить ресурсы 194B в кэше 106 браузера и может хранить базу 174 данных (вместе с доменным именем 172) в локальном хранилище 108. Таким образом, ресурсы 194B и база 174 данных доступны веб-браузеру 104 и приложению 191C без передачи ресурсов 194B и базы 174 данных по сети 131. Соответственно, ресурсы 194B и база 174 данных могут использоваться, чтобы упростить автономное выполнение приложения 191C. Например, когда домен 171 недоступен, запрос от приложения 191C (в приложение 191S) ресурса в ресурсах 194C может быть удовлетворен посредством доступа к ресурсу из кэша 106 браузера. Модуль, сконфигурированный так, чтобы принимать запросы (например, соответствующий URL для приложения 191S) во время автономного выполнения, может упростить доступ к ресурсу в кэше 106 браузера.

Способ 200 включает в себя этап конфигурирования локально сохраненных ресурсов, чтобы они оставались локально сохраненными в компьютерной системе в течение указанного периода времени, таким образом, отменяя настройки очистки кэша веб-браузера по умолчанию (этап 205). Например, менеджер 122 автономного режима может продлить время, когда у ресурсов 194B должен закончиться срок действия. Продление срока, когда у ресурсов должен закончиться срок действия, может включать в себя пометку ресурса битом закрепления, имеющим довольно продолжительный срок окончания (например, 30 дней). Использование бита закрепления может отменить настройки очистки кэша веб-браузера по умолчанию. Например, пометка ресурсов в ресурсах 194B с помощью бита закрепления может отменить политики очистки кэша, ассоциативно связанные с кэшем 106 браузера.

В некоторых вариантах осуществления ресурсы для автономного выполнения приложения предварительно кэшируются. Ресурсы могут быть предварительно кэшированы до обнаружения того, что серверные веб-компоненты недоступны. Например, при первоначальном указании того, что веб-приложению разрешено автономное выполнение (например, когда пользователь первоначально включает приложение в разрешенные для автономного выполнения приложения 121), менеджер 122 автономного режима может запросить ресурсы, чтобы упростить автономное выполнение веб-приложения. Соответственно, веб-приложение более эффективно переходит в автономное выполнение, когда происходит последующее нарушение связи.

В других вариантах осуществления локально сохраненные ресурсы синхронизируются с соответствующими ресурсами, доступными серверному веб-компоненту. Например, может быть, что ресурсы 194A были предварительно сохранены в кэше 106 браузера для автономного выполнения приложения 191C. Однако в некоторый момент времени после сохранения ресурсов 194A части содержимого 175 были обновлены. Соответственно, ресурсы 194В принимаются, чтобы синхронизировать локально сохраненные ресурсы с ресурсами, доступными веб-серверу 173 и/или приложению 191S. Синхронизация может вызвать перезапись предыдущих версий локально сохраненных ресурсов. Например, прием ресурсов 194B может вызвать перезапись ресурсов 194A. Биты закрепления могут быть сброшены после синхронизации.

Фиг.1B иллюстрирует пример компьютерной архитектуры 100, которая облегчает автономную работу веб-приложения. Компьютерная архитектура 100, изображенная на фиг.1B, показывает более подробный вид ресурсов 194B. Ресурсы 194B включают в себя модуль 195, другие модули 196 и содержимое 197. Модуль 195 (например, скрипт) является модулем, который должен выполняться, чтобы упростить автономное выполнение приложения 191C. Модуль 195 может быть выполнен, когда принимается URL для приложения 191S, когда домен 171 недоступен. Модуль 195 может быть ранее идентифицирован в манифесте 192. Другие модули 196 представляют другие модули (например, другие скрипты), которые могут быть вызваны во время выполнения модуля 195, чтобы упростить автономное выполнение приложения 191C. Содержимое 197 представляет содержимое для упрощения автономного выполнения приложения 191C.

Фиг.3 иллюстрирует блок-схему примерного способа 300 автономной работы веб-приложения. Способ 300 будет описан относительно компонентов и данных компьютерной архитектуры 100 на фиг.1B.

Способ 300 включает в себя этап отправки прикладным компонентом веб-браузера для веб-приложения запроса ресурсов веб-приложения соответствующему прикладному компоненту веб-сервера для веб-приложения (этап 301). Например, приложение 191C может представить запрос 141 веб-браузеру 104. Запрос 141 может включать в себя URL в домене 171, указывающий запрос ресурсов из приложения 191S.

Способ 300 включает в себя этап обнаружения того, что связь с соответствующим прикладным компонентом веб-браузера недоступна по сети (этап 302). Например, детектор 123 автономного режима может обнаружить, что домен 171 недоступен. Детектор 123 автономного режима может обнаружить недоступность домена 171, когда не принят ответ на запрос 141. Детектор автономного режима может попытаться дополнительно связаться с доменом 172 перед определением того, что домен 171 недоступен. Альтернативно, детектор 123 автономного режима может обнаружить, что домен 171 был недоступен перед возникновением запроса 141.

Способ 300 включает в себя этап определения того, что веб-приложению разрешено автономное выполнение (этап 303). Например, в ответ на то, что домен 171 обнаружен недоступным, менеджер 122 автономного режима может обратиться к разрешенным для автономного выполнения приложениям 121, чтобы определить, что приложению 191C разрешено автономное выполнение.

Способ 300 включает в себя этап конфигурирования веб-браузера, чтобы выполнять приложение веб-браузера автономно, в то время как другие приложения веб-браузера остаются сконфигурированными так, чтобы выполняться в режиме онлайн (этап 304). Например, менеджер 122 автономного режима может выполнить модуль 195 и сконфигурировать браузер 104 так, что запросы от приложения 191C направляются модулю 195, а ответы от модуля 195 направляются приложению 191C. Однако запросы от и ответы для других приложений не перенаправляются. То есть веб-браузер 104 может продолжать осуществлять связь через сеть 131 с другими доменами. Соответственно, веб-браузер 104 может отправлять веб-запросы другим доменам и принимать веб-ответы из других доменов по сети 131 во время передачи данных приложения 191C в и из модуля 195.

Способ 300 включает в себя этап использования запрошенных ресурсов веб-приложения из локального запоминающего устройства в компьютерной системе без перевода веб-браузера в автономный режим (этап 305). Например, модуль 195 может формулировать ответ 142 на запрос 141 с помощью других модулей 196, содержимого 197 и базы 174 данных. Модуль 195 может отправить ответ 142 (потенциально через веб-браузер 104) приложению 191C.

Веб-браузер 104 может продолжить отправлять веб-запросы другим доменам и принимать веб-ответы из других доменов по сети 131 во время доступа к ресурсам из локального хранилища для ответа на запрос 141. Таким образом, в то время как осуществляется доступ к другим модулям 196, содержимому 197 и базе 174 данных для формулирования ответа на запрос 141, запросы и ответы, отправленные через сеть 131, также могут находить и сохранять другие данные в кэше 106 браузера и локальном хранилище 108.

Варианты осуществления настоящего изобретения облегчают локальное хранение веб-исполняемых инструкций и данных в компьютерной системе. Веб-исполняемые инструкции и данные могут использоваться, чтобы локально удовлетворять запросы (отправленные домену, который отправил исполняемые инструкции и данные) от модулей, ассоциативно связанных с веб-браузером в компьютерной системе. Соответственно, локально сохраненные веб-исполняемые инструкции и данные могут использоваться в компьютерной системе, чтобы имитировать связь с веб-сайтом, когда веб-сайт иным образом недоступен.

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

Настоящее изобретение может быть осуществлено в других характерных формах без отступления от своего духа или неотъемлемых характеристик. Описанные варианты осуществления должны рассматриваться во всех отношениях только как иллюстративные, а не ограничивающие. Рамки изобретения, следовательно, указаны скорее приложенной формулой изобретения, чем предшествующим описанием. Все изменения, которые появляются внутри смысла и рамок равнозначности формулы изобретения, должны быть охвачены ее рамками.

Класс G06F17/00 Устройства или методы цифровых вычислений или обработки данных, специально предназначенные для специфических функций

способ и устройство отображения множества элементов -  патент 2528147 (10.09.2014)
устройство идентификации лагранжевых динамических систем на основе итерационной регуляризации -  патент 2528133 (10.09.2014)
интегрированная система сбора, контроля, обработки и регистрации полетной информации -  патент 2528092 (10.09.2014)
приемник импульсного сигнала -  патент 2528081 (10.09.2014)
система генерирования статистической информации и способ генерирования статистической информации -  патент 2527754 (10.09.2014)
поддержка быстрого слияния для устаревших документов -  патент 2527744 (10.09.2014)
система оповещения о программной ошибке и недостатке эффективности -  патент 2527208 (27.08.2014)
способ конверсии данных, устройство конверсии данных и система конверсии данных -  патент 2527201 (27.08.2014)
телекоммуникационная чип-карта, мобильное телефонное устройство и считываемый компьютером носитель данных -  патент 2527197 (27.08.2014)
контроллер распределения ресурсов -  патент 2526762 (27.08.2014)
Наверх