Обслуживание событий для локальных приложений-клиентов посредством локального сервера

Иллюстрации

Показать все

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

Реферат

УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ

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

[0002] Ввиду этих и других подходов архитектура клиент-сервера привела к исполнению на каждом устройстве специализированных технологий. В некоторых случаях такая специализация приводит к прямо противоположной разработке ввиду различных обстоятельств сервера и клиента. Например, серверное устройство часто вовлекает код, специализированный для контекста сервера, такого как одновременное исполнение приложений от имени нескольких клиентов; выполнение запросов по реализуемому и масштабируемому принципу (например, исполнение высоко оптимизированного кода для ускорения выполнения запросов и уменьшение или устранение привязанности к пользовательскому интерфейсу); уменьшение взаимодействий с сохранением состояний, когда сервер хранит данные, связанные с первой транзакцией, для того чтобы выполнить вторую транзакцию; и проверка допустимости и изоляция контекстов выполнения запросов, принятых от других клиентов, чтобы уменьшить уязвимость безопасности. Схожим образом клиентское устройство часто вовлекает код, специализированный для контекста клиента, такого как кодирование команд на платформенно-независимом языке, который не зависит от конкретной конфигурации устройства; конфигурирование команд для исполнения внутри веб-браузера; обеспечение устойчивого пользовательского интерфейса; и хранение информации в клиенте (например, в форме куки-файлов (cookies), сохраненных в кэш-памяти веб-браузера) для того, чтобы удерживать информацию от первой транзакции в поддержку второй транзакции. С этими и другими подходами специализация контекстов сервера и клиента привела к исполнению на этих различных устройствах очень разных типов команд.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0003] Данный раздел «Сущность изобретения» предоставлен для введения подборки идей в упрощенной форме, которые дополнительно описываются ниже в разделе Подробное описание. Не подразумевается, что данный раздел «Сущность изобретения» означает главные признаки или существенные признаки заявляемого изобретения, кроме того, не предусматривается использование данного раздела Сущность для ограничения объема заявляемого изобретения.

[0004] В то время как дивергентная специализация контекстов сервера и клиента содействует производительности каждого типа устройств, такая дивергенция вызывает различные трудности. В качестве одного такого примера, если сервер исполняет один тип кода (например, команды, которые, в частности, сконфигурированы для возможностей сервера), а клиент исполняет второй тип кода (например, гибкие и платформенно-независимые команды, которые могут исполняться одинаково на многих устройствах), такие различия могут усложнять совместную разработку приложения-сервера и приложения-клиента из-за различий в языках, интерфейсах (API) прикладного программирования и стандартах данных. Дополнительно, разработчики должны понимать два различных языка и среды исполнения и методики для преобразования типов данных и объектов, которыми там приходится обмениваться. В результате, последние разработки вовлекли конвергенцию в разработке этих сред, такую как разработка и популярность модели Node.js, вовлекающую код JavaScript на стороне сервера с конструкциями языка и интерфейсами (API) прикладного программирования, специализированными для контекста сервера, таким образом предоставляя возможность разработки кода сервера и кода клиента на одном и том же языке и совместно используя интерфейсы (API) прикладного программирования и типы данных. Однако такие конвергентные среды разработки сервера и клиента обычно применяются при взаимодействии исполнения приложения-сервера на серверном устройстве и исполнения приложений-клиентов на одном или более клиентских устройствах.

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

[0006] Например, локальное событие может содержать событие мобильной связи, такое как входящий сеанс передачи голоса, и приложение-клиент может запросить некоторую конкретную обработку для данного сеанса передачи голоса, такую как запись сеанса. Однако приложения-клиенты, исполняющиеся на мобильном устройстве, могут не находиться в исполнении во время входящего сеанса передачи голоса и, таким образом, могут не наблюдать за возникновением такого локального события. Альтернативно, модель обеспечения безопасности мобильного устройства может обычным образом мешать приложениям-клиентам взаимодействовать с такими локальными событиями в качестве меры качества обслуживания или безопасности (например, локальное приложение может исполняться внутри изолированной конструкции устройства, например, внутри веб-браузера). Скорее, и согласно методикам, представленным в данном документе, приложение-клиент может посылать локальному серверу на том же самом устройстве (исполняющемуся непрерывно и вне веб-браузера) запрос подписки, идентифицирующий локальное событие входящего сеанса передачи голоса. После обнаружения такого события локальный сервер может исполнить один или более серверных сценариев, относящихся к локальному событию, от имени приложения-клиента. Кроме того, серверный сценарий может быть разработан в среде разработки, подобной среде разработки приложения-клиента (например, как серверный сценарий, так и локальное приложение-клиент могут быть написаны на JavaScript, где серверный сценарий использует API Node.js на стороне сервера), таким образом, содействуя разработке этих взаимодействующих приложений согласованным и совместимым образом. Такие преимущества могут быть достижимыми посредством изменений архитектуры клиент-сервер, представленной в данном документе.

[0007] Для выполнения вышеуказанных и связанных с ними задач последующее описание и сопроводительные чертежи формулируют некоторые иллюстративные аспекты и варианты реализации. Они указывают всего лишь несколько из различных принципов, по которым один или более аспектов могут использоваться. Другие аспекты, преимущества и новые признаки раскрытия станут очевидными из последующего подробного описания при рассмотрении совместно с сопроводительными чертежами.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0008] Фиг.1 является иллюстрацией примерного подхода, изображающего архитектуру клиент-сервер для выполнения запросов приложений-клиентов, относящихся к событиям, возникающим на клиентском устройстве и серверном устройстве.

[0009] Фиг.2 является иллюстрацией примерного подхода, изображающего архитектуру клиент-сервер для выполнения запросов приложений-клиентов, относящихся к локальным событиям, в соответствии с методиками, представленными в данном документе.

[0010] Фиг.3 является иллюстрацией примерного способа конфигурирования устройства для выполнения запросов приложений-клиентов, относящихся к локальным событиям, в соответствии с методиками, представленными в данном документе.

[0011] Фиг.4 является блок-схемой компонентов, изображающей примерную систему для выполнения запросов приложений-клиентов, относящихся к локальным событиям, в соответствии с методиками, представленными в данном документе.

[0012] Фиг.5 является иллюстрацией примерного считываемого компьютером носителя, содержащего исполняемые процессором команды, сконфигурированные с возможностью воплощения одного или более положений, сформулированных в данном документе.

[0013] Фиг.6 является иллюстрацией примерного подхода, показывающего модель подписки на события, позволяющую локальным приложениям подписываться на локальные события, генерируемые компонентами устройства, при этом соответствующие компоненты идентифицируются адресом компонента.

[0014] Фиг.7 является иллюстрацией примерного подхода, показывающего ячейку устройств, содержащую набор устройств, на которых соответственно исполняется локальный сервер, сконфигурированный с возможностью приема и выполнения запросов подписки на события, принимаемых как от локальных приложений-клиентов, так и от удаленных приложений-клиентов, исполняющихся на других устройствах ячейки устройств.

[0015] Фиг.8 изображает примерную вычислительную среду, в которой может быть реализовано одно или более положений, сформулированных в данном документе.

ПОДРОБНОЕ ОПИСАНИЕ

[0016] Заявляемое изобретение теперь описывается со ссылкой на чертежи, на которых одинаковые ссылочные позиции используются для обозначения повсюду одинаковых элементов. В последующем описании, в целях пояснения, излагаются многочисленные конкретные подробности для того, чтобы обеспечить исчерпывающее понимание заявляемого изобретения. Очевидно, существует возможность того, однако, что заявляемое изобретение может быть реализовано без этих конкретных подробностей. В других примерах структуры и устройства изображены в виде блок-схем для содействия описанию заявляемого изобретения.

[0017] A. Введение

[0018] В области вычислительной техники, во многих подходах вовлекается архитектура клиент-сервер, содержащая приложение-сервер (например, веб-сервер), обеспечивающее один или более сервисов от имени одного или более приложений-клиентов. В качестве первого примера, сервис может включать в себя предоставление веб-содержимого (контента), включающего в себя веб-страницы и веб-приложения, которые следует визуализировать внутри веб-браузера клиентского устройства. В качестве второго примера, сервис может включать в себя хранилище приложений, сконфигурированное с возможностью хранения набора приложений, исполняемых на различных устройствах, и обеспечения конкретного устройства одним или более приложениями, которые вслед за этим могут быть исполнены. В качестве третьего примера, сервис может включать в себя хранение данных (например, в базе данных) и предоставление таких данных для использования внутри различных «управляемых данными» приложений, исполняющихся на соответствующих клиентских устройствах. В традиционной модели приложение-сервер функционирует в качестве резидентного процесса устройства, чтобы ждать соединения, инициируемого приложением-клиентом, принимает запросы со стороны приложения-клиента и выполняет такие запросы для того, чтобы предоставить сервис приложению-клиенту.

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

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

[0021] На фиг.1 представлена иллюстрация примерного подхода 100, показывающего взаимодействие приложения-сервера 104, исполняющегося на серверном устройстве 102, и приложения-клиента 108, исполняющегося на клиентском устройстве 106. Серверное устройство 102 может быть соединено с сетью (например, Интернетом или локальной сетью (LAN)) и сконфигурировано с возможностью ожидания соединения от одного или более приложений-клиентов 108. После такого соединения приложение-клиент 108 может предоставить один или более запросов в приложение-сервер 104, таких как запрос веб-содержимого, приложения, исполняемого на клиентском устройстве 106, или данных, используемых «управляемым данными» приложением. Приложение-сервер 104 может выполнять такие запросы от имени приложения-клиента 108, и клиентское устройство 106 может представлять результаты такого обслуживания пользователю 110. Чтобы удовлетворять различным ролям этих устройств, приложение-сервер 104 часто, в частности, сконфигурировано с возможностью использования конкретных возможностей серверного устройства 102. В отличие от этого приложение-клиент 108 часто выполняется на языке высокого уровня, таком как JavaScript, который может исполняться на большом разнообразии клиентских устройств 106 независимо от возможностей конкретного клиентского устройства 106.

[0022] В качестве конкретного примера, приложение-сервер 104 может быть выполнено с возможностью уведомления приложений-клиентов 108 и/или клиентских устройств 106 о событиях 112 на сервере, обнаруженных серверным устройством 102, таких как прием новых данных серверным устройством 102 или наблюдение за условиями локального окружения (например, наблюдение за погодой или захваченные изображения окружения, в котором расположено серверное устройство 102). Приложение-клиент 108 может запросить уведомление о таких событиях 112 на сервере, и после обнаружения события 112 на сервере приложение-сервер 104 может отправить уведомление 114 о событии на сервере приложению-клиенту 108. Дополнительно, клиентское устройство 106 может наблюдать за событиями 116 на клиентском устройстве, такими как пользовательский ввод, принятый от пользователя 110 или компонента ввода, и может исполнять наблюдение 118 за событиями на клиентском устройстве, чтобы обнаруживать и сообщать о таких сервисах. Например, клиентское устройство 106 может включать в себя программу управления аппаратным обеспечением, которая сконфигурирована с возможностью наблюдения за событиями в аппаратном обеспечении, и предоставлять уведомления 120 о событиях на клиентском устройстве, сообщающих о таких событиях в аппаратном обеспечении приложениям-клиентам 108. По такому принципу приложение-сервер 104 и приложение-клиент 108, исполняющиеся в различных ролях и на различных устройствах, могут взаимодействовать для сообщения приложению-клиенту 108 о событиях 112 на сервере, обнаруженных приложением-сервером 104, и событиях 116 на клиентском устройстве, обнаруженных наблюдением 118 за событиями на клиентском устройстве.

[0023] Однако архитектура, представленная в примерном подходе 100 на фиг.1, может представлять некоторые недостатки. В частности, разработка приложения-сервера 104, ввиду специализированных свойств серверного устройства 102, может значительно отличаться от разработки приложения-клиента 108 на обобщенном языке для разнообразных устройств. Из-за различных языков и сред разработки разработчикам может потребоваться понимание обеих сред разработки и согласование таких отличий для взаимодействия приложения-сервера 104 и приложения-клиента 108 (например, борясь с различиями с помощью доступных сред (API) прикладного программирования и преобразования форматов данных). Чтобы согласовать такие различия, наиболее последние модели разработки приложений-серверов становятся конвергентными с разработкой приложений-клиентов, чтобы обеспечить слаженность при разработке таких взаимодействующих приложений. В качестве первого примера, JavaScript традиционно считался недостаточно производительным для приложений-серверов, однако широко распространенное знакомство с JavaScript среди сообщества разработчиков привело к разработке Node.js, модуля JavaScript, обеспечивающего исполнение кода JavaScript на стороне сервера. В качестве второго примера, методики разрабатывались для позволения серверам исполнять языки верхнего уровня (такие как JavaScript) более производительным образом, например, компилируя JavaScript в собственный код, который может исполняться быстрее на сервером устройстве 102. Поэтому разработчики могут использовать один и тот же язык и подобные API для разработки как приложений-серверов 104, так и приложений-клиентов 108. Ввиду таких конвергентных технологий могут разрабатываться методики для использования кода на стороне сервера в новых подходах.

[0024] B. Представленные методики

[0025] В данном документе представлен один такой подход, в котором приложение-сервер 104 может предоставлять сервисы, относящиеся к событиям 116 на клиентском устройстве, связанным с клиентским устройством 106. В частности, приложение-сервер 104 может исполняться на устройстве 106 для предоставления относящихся к локальным событиям сервисов одному или более приложениям-клиентам 108, исполняющимся на том же самом устройстве. Например, традиционный веб-сервер может исполняться пассивно, но непрерывно на клиентском устройстве 107, и может ожидать запросы на сервисы локальных событий, инициируемые одним или более локальными клиентскими веб-приложениями, исполняющимися внутри веб-браузера на том же самом клиентском устройстве 106. Такие запросы могут включать в себя, например, уведомление клиентского устройства 106 о локальных событиях, либо применение некоторой обработки, относящейся к локальному событию, от имени приложения-клиента 108. Предоставляя возможность приложению-серверу 104 наблюдать за такими событиями 116 на клиентском устройстве и применять исполнение к событиям 116 на устройстве, эта модель может разгрузить приложения-клиенты 108 от данного наблюдения и вычислительной нагрузки, которые могут исполняться очень интерактивным, оперативным образом по запросу пользователя 110 (например, наблюдение и обработка событий 116 на клиентском устройстве могут продолжаться даже после того, как приложение-клиент 108 завершено пользователем 110). Дополнительно, данная модель может предоставлять возможность взаимодействия приложению-серверу 104 с событиями 116 на клиентском устройстве, тогда как такие взаимодействия могут быть не разрешены приложению-клиенту 108. Например, приложение-клиент 108 может исполняться внутри веб-браузера, который изолирует приложение-клиент 108 от локальных событий 116 на клиентском устройстве из соображений безопасности; однако приложение-клиент 108 может запросить приложение-сервер 104, исполняющееся вне веб-браузера и с более большим набором разрешенных возможностей, взаимодействовать с событиями 116 клиентского устройства проверенным и доверенным образом.

[0026] На фиг.2 представлена иллюстрация примерного подхода 200, показывающего архитектуру клиент-сервер, сконфигурированную согласно методикам, представленным в данном документе. В данном примерном подходе 200 на клиентском устройстве 106 исполняется как приложение-сервер 104, так и одно или более приложений-клиентов 108, и клиентское устройство 106 может предоставлять возможность приложениям-клиентам 108 взаимодействовать с локальными событиями 206 через взаимодействие с клиент-серверным приложением 104. В частности, приложение-сервер 104 может содержать один или более серверных сценариев 202, которые обеспечивают различные типы обработки при исполнении в контексте различных локальных событий 206. Приложение-клиент 108 может представлять приложению-серверу 104 запрос 204 подписки на событие, идентифицирующий одно или более конкретных локальных событий 206, которые могут возникнуть внутри клиентского устройства 106. Приложение-сервер 104 может выполнить запрос 204 подписки на событие посредством связывания одного или более серверных сценариев 202 с локальным событием 206, так что, когда происходят такие локальные события 206, приложение-сервер 104 может реализовать исполнение 208 серверных сценариев из серверных сценариев 202 от имени подписанного приложения-клиента 108.

[0027] Архитектурная модель, представленная в примерном подходе 200 на фиг.2, может сделать возможными различные преимущества по отношению к другим моделям обработки локальных событий. В качестве первого примера, данная архитектура может предоставлять возможность приложению-серверу 104 реализовывать непрерывное фоновое наблюдение за локальными событиями 206 и исполнение доверенных серверных сценариев 202, обеспечивающих вызывающую доверие обработку локальных событий 206, в то время как недоверенное приложение-клиент 104 может исполняться время от времени и недоверенным образом (например, внутри изолированной конструкции веб-браузера). В качестве второго примера, предоставление одного приложения-сервера 104 для наблюдения за обширным диапазоном локальных событий 206 и применения к ним обработки может быть более эффективным, чем конфигурирование каждого из нескольких приложений-клиентов 108 для наблюдения за тем же самым набором локальных событий 206. В качестве третьего примера, серверные сценарии 202 могут быть разработаны в подобной среде разработки, что и приложения-клиенты 104 (например, серверный сценарий 202 может использовать Node.js модель программирования JavaScript на стороне сервера, а приложение-клиент 104 может быть разработано в качестве JavaScript на стороне клиента, исполняющегося внутри веб-браузера клиентского устройства 102). Например, локальные события 206 могут включать в себя события, которые приложениям-клиентам 104 часто не разрешено обрабатывать непосредственно, такие как события аппаратного обеспечения низкого уровня или события, возникающие внутри различных процессов клиентского устройства 102, с которыми приложению-клиенту 104 запрещено взаимодействовать. В качестве четвертого примера, посредством обработки информации на одном и том же пользовательском устройстве вместо отправки информации в качестве задействования сервиса на удаленном устройстве, эти методики содействуют изоляции информации, которую пользователь может не хотеть распространять, такой как информация, которая является личной для пользователя (например, местоположение и личность пользователя) и/или информация безопасности (например, пароли). В качестве пятого примера, подход программирования приложений, которые следует исполнять сервером при обслуживании приложений-клиентов, исполняющихся на том же самом устройстве, может обеспечить новый вычислительный подход и может предоставить возможность развития нового рынка вокруг таких приложений. Эти и другие преимущества могут быть достижимыми посредством архитектуры, изображенной в примерном подходе 200 на фиг.2, и методик, представленных в данном документе.

[0028] C. Примерные варианты осуществления

[0029] На фиг.3 представлен первый примерный вариант осуществления методик, представленных в данном документе, изображенный в качестве примерного способа 300 выполнения запросов на устройстве, имеющем процессор и исполняющем, по меньшей мере, одно локальное приложение-клиент 108. Примерный способ 300 может быть реализован, например, в качестве набора команд, сохраненных в запоминающем компоненте устройства, таком как запоминающая схема, диск жесткого диска, твердотельное запоминающее устройство или магнитный или оптический диск, и организованных так, чтобы, при исполнении устройством, предписывать устройству функционировать согласно методикам, представленным в данном документе. Примерный способ 300 начинается на этапе 302 и вовлекает исполнение 304 команд в процессоре устройства. В частности, эти команды могут быть сконфигурированы с возможностью генерирования 306 локального сервера, связывающего, по меньшей мере, один серверный сценарий 202 с, по меньшей мере, одним локальным событием 206, которое может возникнуть на устройстве. Команды также сконфигурированы с возможностью, после приема от локального приложения-клиента 108 запроса 204 подписки на событие, задающего выбранное локальное событие 206, связывания 308 выбранного локального события 206 с локальным приложением-клиентом 108. Команды также сконфигурированы с возможностью, после обнаружения локального события, связанного с, по меньшей мере, одним серверным сценарием 202 и локальным приложением-клиентом 108, исполнения 310 внутри локального сервера серверных сценариев 202, связанных с и относящихся к локальному событию 206, от имени локального приложения-клиента 108. Выполнив обработку локального события 206 от имени локального приложения-клиента 108 посредством использования локального сервера, исполняющегося на том же самом устройстве, примерный способ 300 реализует методики, представленные в данном документе, и завершается на этапе 312.

[0030] На фиг.4 представлен второй примерный вариант осуществления методик, представленных в данном документе, изображенный в качестве примерного подхода 400, показывающего примерную систему 406, сконфигурированную с возможностью выполнения запросов на устройстве 402, имеющем процессор 404, исполняющий, по меньшей мере, одно локальное приложение-клиент 108. Примерная система 406 может быть реализована, например, в качестве команд, сохраненных в запоминающем компоненте устройства 402 и сконфигурированных с возможностью, при исполнении в процессоре 404, предписания устройству 402 функционировать согласно методикам, представленным в данном документе. Примерная система 406 содержит компонент 408 с локальным сервером, сконфигурированный с возможностью связывания, по меньшей мере, одного серверного сценария 202 с, по меньшей мере, одним локальным событием 206. Примерная система 406 также содержит компонент 410 привязки к локальному серверу, который сконфигурирован с возможностью, после приема от приложения-клиента 108 запроса 204 подписки на событие, задающего выбранное локальное событие 206, связывания выбранного локального события 206 с локальным приложением-клиентом 108; и, после обнаружения локального события 206, связанного с, по меньшей мере, одним серверным сценарием 202 и приложением-клиентом 108, исполнения внутри компонента 408 с локальным сервером серверных сценариев 202, связанных с и относящихся к локальному событию 206, от имени приложения-клиента 108. Посредством наблюдения появления локальных событий 206 и исполнения серверных сценариев 202 в ответ на локальные события 206 от имени приложения-клиента 108 примерная система 406 достигает внутри устройства 402 применение методик, представленных в данном документе.

[0031] Еще один вариант осуществления вовлекает считываемый компьютером носитель, содержащий исполняемые процессором команды, сконфигурированные с возможностью применения методик, представленных в данном документе. Такой считываемый компьютером носитель может включать в себя, например, считываемые компьютером носители хранения информации, вовлекающие материальное устройство, такое как запоминающий полупроводник (например, полупроводник, использующий технологии статической памяти (SRAM) с произвольным доступом, динамической памяти (DRAM) с произвольным доступом и/или синхронной динамической памяти (SDRAM) с произвольным доступом), диск жесткого диска, устройство с флэш-памятью, либо магнитный или оптический диск (такой как CD-R, DVD-R или гибкий диск), кодирующие набор считываемых компьютером команд, которые при исполнении процессором устройства предписывают устройству реализовывать методики, представленные в данном документе. Такой считываемый компьютером носитель может также включать в себя (в качестве класса технологий, которые отличаются от считываемых компьютером носителей хранения информации), различные типы носителей связи, такие как сигнал, который может распространяться посредством различных физических процессов (например, электромагнитный сигнал, сигнал звуковой волны или оптический сигнал) и в различных проводных подходах (например, через Ethernet или кабель волоконной оптики) и/или беспроводных подходах (например, беспроводная локальная сеть (WLAN), такая как WiFi, персональная сеть (PAN), такая как Bluetooth, либо сеть сотовой или радиосвязи), и который кодирует набор считываемых компьютером команд, которые при исполнении процессором устройства предписывают устройству реализовывать методики, представленные в данном документе.

[0032] Примерный считываемый компьютером носитель, который может быть разработан по таким принципам, изображен на фиг.5, причем вариант 500 реализации содержит считываемый компьютером носитель 502 (например, CD-R, DVD-R либо диск жесткого диска), на котором закодированы считываемые компьютером данные 504. Эти считываемые компьютером данные 504, в свою очередь, содержат набор компьютерных команд 506, сконфигурированных с возможностью функционирования согласно принципам действия, изложенным в данном документе. В одном таком варианте осуществления исполняемые процессором команды 506 могут быть сконфигурированы с возможностью реализации способа 508 выполнения запросов приложений-клиентов 108, относящихся к локальным событиям 105, такого как примерный способ 300 с фиг.3. В другом таком варианте осуществления исполняемые процессором команды 506 могут быть сконфигурированы с возможностью реализации системы для выполнения запросов приложений-клиентов 108, относящихся к локальным событиям 206, такой как примерная система 406 с фиг.4. Некоторые варианты осуществления данного считываемого компьютером носителя могут содержать считываемый компьютером носитель хранения информации (например, жесткий диск, оптический диск либо устройство с флэш-памятью), который сконфигурирован с возможностью хранения исполняемых процессором команд, сконфигурированных по данному принципу. Специалистами в уровне техники может быть разработано много таких считываемых компьютером носителей, которые сконфигурированы с возможностью функционирования в соответствии с методиками, представленными в данном документе.

[0033] D. Разновидности

[0034] Методики, обсужденные в данном документе, могут быть разработаны по-разному во многих аспектах, и некоторые разновидности могут представлять дополнительные преимущества и/или уменьшить недостатки относительно других разновидностей этих и других методик. Кроме того, некоторые разновидности могут реализовываться в сочетаниях, и некоторые сочетания могут демонстрировать дополнительные преимущества и/или уменьшенные недостатки посредством синергетического взаимодействия. Разновидности могут быть включены в различные варианты осуществления (например, примерный способ 300 с фиг.3 и примерная система 406 с фиг.4), чтобы предоставить отдельные и/или синергетические преимущества при помощи таких вариантов осуществления.

[0035] D1. Подходы

[0036] Первый аспект, который может изменяться среди вариантов осуществления этих методик, относится к подходам, в которых такие методики могут быть использованы.

[0037] В качестве первой разновидности данного первого аспекта методики, представленные в данном документе, могут использоваться со многими типами устройств 402, такими как серверы, серверные фермы, рабочие станции, портативные компьютеры, планшеты, мобильные телефоны, игровые приставки и сетевые устройства. Такие устройства 402 могут также предоставлять множество вычислительных компонентов, таких как устройства проводной или беспроводной связи; устройства ввода от человека, такие как клавиатуры, «мышки», сенсорные панели, сенсорные устройства отображения, микрофоны и компоненты основанного на жестах ввода; устройства автоматизированного ввода, такие как камеры неподвижной съемки или съемки движения, устройства с услугами (GPS) глобального позиционирования и другие датчики; устройства вывода, такие как устройства отображения и громкоговорители; и устройства связи, такие как компоненты проводной и/или беспроводной сети.

[0038] В качестве второй разновидности данного первого аспекта методики, представленные в данном документе, могут использоваться с различными типами приложений-серверов 104, таких как веб-серверы, файловые серверы, серверы приложений, мультимедийные серверы, координационные серверы однорангового совместного использования, серверы баз данных, почтовые серверы, серверы наблюдения за физическими параметрами и серверы автоматизации диспетчерского управления и сбора данных (SCADA).

[0039] В качестве третьей разновидности данного первого аспекта методики, представленные в данном документе, могут использоваться для обслуживания множества типов приложений-клиентов 108, таких как веб-браузеры, приложения совместного использования файлов, приложения визуализации мультимедиа и управляемые данными приложения-клиенты. Кроме того, приложения-клиенты 108 могут исполняться в различных контекстах, таких как собственное исполнение на устройстве 402; управляемое исполнение, которому способствует одна или более управляющих сред выполнения; виртуальное исполнение внутри виртуальной среды, такой как веб-приложение, исполняющееся внутри веб-браузера; и изолированное исполнение внутри изолированной конструкции. Такие приложения-клиенты 108 могут также приниматься устройством 402 посредством различных методик, например, прил