СИСТЕМА И СПОСОБ ДЛЯ УДАЛЕННОГО УПРАВЛЕНИЯ ВЕБ-БРАУЗЕРОМ
SYSTEM AND METHOD FOR REMOTE CONTROL OF WEB BROWSER

Область техники
[0001] Настоящее описание относится к области удаленной связи с устройствами в общем, и в частности - к системам, способам и компьютерным программным продуктам для предоставления удаленного управления устройством через веб-браузер.
Уровень техники
[0002] Удаленный доступ, управление и администрирование персональных компьютеров или других электронных устройств включает в себя использование одного устройства для безопасного управления другим устройством через Интернет. Обычно доступ к удаленному устройству требует использования специального программного обеспечения (например, Интернет-браузера) или функции операционной системы, которая позволяет управлять рабочим столом персонального компьютера удаленно с одного устройства при одновременном отображении на другом устройстве.
[0003] Приложения для удаленного рабочего стола обладают различными характеристиками. Некоторые из них позволяют подключаться к текущему сеансу пользователя (т.е. включенному рабочему столу) и дистанционно управлять сеансом пользователя. В общем случае удаленный доступ используется для случаев удаленной технической поддержки или удаленного доступа к персональным приложениям и файлам. Существующие приложения для удаленного доступа и сетевые службы тем не менее не предоставляют эффективного, независимого от платформы способа удаленно управлять устройством через сторонние веб-сайты с помощью веб-браузера. Поэтому существует потребность в системах и способах предоставления удаленного управления устройством (например, персональным компьютером, мобильным телефоном) через веб-браузер.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] Предлагаются системы, способы и компьютерные программные продукты для предоставления удаленного управления устройством через веб-браузер. Одним объектом технологии является способ, включающий в себя получение доступа через веб-браузер первого устройства к сторонней веб-странице, которая предоставляет собой сетевой интерфейс программирования приложений (API), выполненный с возможностью выполнять удаленные команды на одном или нескольких вторых пользовательских устройствах. Способ далее включает в себя получение через сетевой API информации от сервера синхронизации по меньшей мере об одном втором пользовательском устройстве, связанном с первым пользовательским устройством и одним или несколькими удаленными командами, которые поддерживаются веб-браузером второго пользовательского устройства. Способ далее включает в себя получение через сетевой API удаленной команды, которая инициирует выполнение веб-браузером второго устройства функции, связанной с удаленной командой. Способ далее включает в себя передачу через сетевой API выбранной удаленной команды, которая инициирует выполнение веб-браузером второго устройства функции на втором пользовательском устройстве.
[0005] Другим аспектом способа является регистрация первого пользовательского устройства с помощью сервера синхронизации. Регистрация может включать в себя установление связи между пользовательским устройством и профилем пользователя на сервере синхронизации. Способ далее включает в себя синхронизацию первого пользовательского устройства с помощью сервера синхронизации. Синхронизация может включать в себя предоставление сервером синхронизации информации о конфигурации первого пользовательского устройства. Способ далее включает в себя получение доступа через веб-браузер первого устройства к сторонней веб-странице, которая предоставляет собой сетевой API, выполненный с возможностью выполнять удаленные команды на одном или нескольких вторых зарегистрированных пользовательских устройствах. Способ далее включает в себя выбор через сетевой API удаленной команды, которая инициирует выполнение веб-браузером второго устройства функции, связанной с конкретной удаленной командой на втором пользовательском устройстве. Способ далее включает в себя передачу через сетевой API выбранной удаленной команды, которая инициирует выполнение веб-браузером второго устройства функции на втором пользовательском устройстве. В одном примере сетевой API включает в себя библиотеку функций API, предоставляемую веб-браузером первого пользовательского устройства.
[0006] В другом примере сетевой API включает в себя библиотеку функций API, предоставляемую сервером синхронизации или сервером сетевой службы.
[0007] В другом примере сетевой API может быть выполнен с возможностью создавать компонент пользовательского интерфейса в веб-браузере первого пользовательского устройства и определять активацию компонента пользовательского интерфейса пользователем в рамках веб-браузера первого пользовательского устройства.
[0008] В другом примере компонент пользовательского интерфейса может быть выполнен с возможностью отображать список удаленных команд для выбора их пользователем первого пользовательского устройства.
[0009] В другом примере компонент пользовательского интерфейса может быть выполнен с возможностью отображать список зарегистрированных пользовательских устройств, совместимых с выполнением удаленных команд.
[0010] В другом примере информация о конфигурации может включать в себя информацию о функциях, которые могут быть выполнены первым браузером первого пользовательского устройства.
[0011] Представленное выше описание упрощенных вариантов осуществления аспекта технологии служат для понимания основных ее аспектов. Это описание не является полным для всех рассматриваемых аспектов и не предназначено для определения ключевых или важнейших элементов всех аспектов или для ограничения объема любого или всех аспектов технологии. Единственной его целью является представление одного или нескольких объектов в упрощенной форме перед более подробным описанием, которое следует ниже. Для выполнения вышеизложенной задачи один или несколько аспектов технологии включают в себя признаки, описанные и конкретно указанные в формуле изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0012] Прилагаемые чертежи, которые включены в данное описание и составляют его часть, которые иллюстрируют один или несколько вариантов осуществления аспектов технологии вместе с подробным описанием, служат для пояснения принципов и вариантов осуществления технологии.
[0013] На Фиг. 1 представлена диаграмма, иллюстрирующая вариант конфигурации системы предоставления удаленного управления устройством через веб-браузер в соответствии с одним объектом изобретения.
[0014] На Фиг. 2 представлена блок-схема, иллюстрирующая способ предоставления удаленного управления устройством через веб-браузер в соответствии с одним объектом изобретения.
[0015] На Фиг. 3 представлена блок-схема, иллюстрирующая способ предоставления удаленного управления устройством через веб-браузер в соответствии с одним объектом изобретения.
[0016] На Фиг. 4 представлена блок-схема, иллюстрирующая способ предоставления удаленного управления устройством через веб-браузер в соответствии с одним объектом изобретения.
[0017] На Фиг. 5 представлена диаграмма, иллюстрирующая вариант компьютерной системы общего назначения, на которой реализованы системы и способы предоставления удаленного управления устройством через веб-браузер в соответствии с объектами изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
[0018] Примеры аспектов настоящей технологии, описанные здесь в контексте систем, методов и компьютерных программных продуктов для предоставления удаленного управления устройством через веб-браузер. Специалистам в данной области техники будет понятно, что следующее описание является исключительно иллюстративным и не предназначено для установления каких-либо ограничений. Другие аспекты будут очевидны специалистам в данной области техники, обладающим преимуществами от прочтения настоящего описания. Далее будут описаны подробнее варианты осуществления аспектов, проиллюстрированных в прилагаемых чертежах. На всех чертежах и в нижеследующем описании одни и те же элементы по возможности будут пронумерованы одинаково.
[0019] На Фиг. 1 представлен вариант системы 100 для предоставления удаленного управления устройством через веб-браузер в соответствии с одним объектом изобретения. Система 100 может включать в себя различные электронные пользовательские устройства, например, мобильные устройства 102 (например, планшет или смартфон с поддержкой веб-браузера), настольный компьютер 104 или ноутбук 106. Устройства 102, 104, 106 могут быть соединены с сетью 110, например, с Интернетом через проводное или беспроводное соединение. Также с сетью 110 может быть соединен сервер 108 синхронизации и сервер 118 веб-службы. В других вариантах осуществления технологии серверы 108 и 118 могут быть реализованы как на одном и том же, так и на различном аппаратном обеспечении серверов, а также могут быть размещены в одном месте или же в разных местах. В одном варианте осуществления технологии на веб-сервере 118 может размещаться одна или несколько сетевых служб 120, которые предоставляют одну или несколько библиотек функций 124 интерфейсов, программирование приложений (API) для удаленного управления различными пользовательскими устройствами 102, 104, 106 путем, например, получения и передачи удаленных команд, инструкций и другой информации от устройств 102, 104 и 106 и обратно. В другом варианте осуществления технологии сервер 108 синхронизации может включать в себя модуль 112 регистрации, модуль 116 синхронизации и базу 114 данных пользовательских профилей. Функциональность каждого из этих модулей сервера 108 синхронизации будет более подробно описана ниже. Система может дополнительно включать в себя сторонний веб-сервер 140, на котором размещено множество сторонних веб-сайтов, которые включают в себя веб-страницы 140. Веб-страницы 140 могут включать в себя встроенную API-функцию вызова 134, связанную с библиотекой API-функций 124.
[0020] Термин "модуль" в данном контексте означает физическое устройство, аппарат или множество модулей, выполненных с использованием аппаратного обеспечения, например, с помощь интегральной схемы специального назначения (ASIC) или программируемой логической интегральной схемы (FPGA), или же комбинации аппаратного и программного обеспечения, например, с помощью микропроцессорной системы и набора инструкций, реализующих функционал модуля, которые (при выполнении) трансформируют микропроцессорную систему в устройство специального назначения. Модуль также может быть реализован в виде комбинации обоих, причем некоторые конкретные функций реализуются за счет аппаратного обеспечения, а другие функции реализуются комбинацией аппаратного и программного обеспечения. В некоторых вариантах осуществления технологии, по меньшей мере, частично, в некоторых случаях модуль может быть реализован на процессоре компьютера общего назначения (например, на таком, который описан подробнее ниже на Фиг.5). Соответственно, каждый модуль может быть реализован в виде множества различных конфигураций и не ограничивается конкретным вариантом осуществления, приведенным здесь в качестве примера.
[0021] В одном примере, каждое из пользовательских устройств 102, 104 и 106, представленных на Фиг. 1, может включать в себя веб-браузер 130, который позволяет пользователю извлекать, просматривать информационные ресурсы, а также переходить по ним во Всемирной паутине через сеть 110. Веб-браузер может представлять собой веб-бразуер любого типа, который поддерживает API, например, Яндекс браузер, Google Chrome, Mozilla Firefox, Internet Explorer, Opera или Safari. Пользователь устройств 102, 104, 106 может регистрировать каждое из них через соответствующие этим устройствами веб-браузеры 130 с помощью сервера 108 синхронизации. Пользователь может инициировать регистрацию устройства, например, мобильного устройства 102 с помощью, например, веб-браузера устройства 102, через который можно перейти на регистрационный веб-сайт сервера 108 синхронизации. Модуль 112 регистрации сервера 108 синхронизации может предложить пользователю зарегистрировать идентификатор пользователя и устройство 102 при запросе различной идентификационной информации о профиле пользователя, например, имя, электронная почта, адрес и учетные данные, например, логин и пароль. Модуль 112 регистрации также может автоматически определять и включать в информацию о профиле пользователя любые идентификационные характеристики устройства 102 и веб-браузера 130, с которых пользователь пытается получить доступ к регистрационному веб-сайту. После получения регистрационным модулем 112 всей релевантной информации о профиле конкретного пользователя и устройства модуль 112 регистрации может сохранять информацию о профиле пользователя в базе 114 данных профилей пользователей. Если пользователь желает зарегистрировать дополнительное устройство, например, настольный компьютер 104, пользователь может использовать веб-браузер на устройстве 104 для получения доступа к регистрационному веб-сайту, и добавить устройство 104 к уже существующей информации о профиле того пользователя, с которым связаны устройства 102 и 104. Пользователь может аналогичным образом регистрировать и добавлять любые устройства к информации о профиле пользователя.
[0022] После того как устройства 102, 104 и 106 были зарегистрированы с помощью сервера 118 синхронизации, модуль 116 синхронизации может быть активирован для синхронизации веб-браузеров 130 устройств 102, 104 и 106, связанных с профилем конкретного пользователя. Во время процесса синхронизации, который может выполняться каждый раз, когда веб-браузер устройства запускается пользователем, модуль 116 синхронизации может собирать с зарегистрированных пользовательских устройств 102, 104 и 106 информацию об конфигурации их программного и аппаратного обеспечения. Подобная информация может включать в себя, среди прочего, информацию об операционной системе, информацию о свойствах устройства, информацию о веб-браузере, информацию о внутреннем и периферийном аппаратном обеспечении, информацию о приложениях и прочее. Например, информация об операционной системе (ОС) может включать в себя, среди прочего, версию ОС, версию системного программного обеспечения, версии установленных драйверов и т.д.; информация об аппаратном обеспечении может включать в себя, среди прочего, информацию о поставщике, информацию о модели устройства, доступные периферийные устройства (например, камеру, модуль беспроводной связи (например, GSM), модуль геолокации (например, GPS), акселерометр, компас и т.д.); информация о свойствах устройства включает в себя, среди прочего, разрешение экрана, память, информацию о центральном процессоре, информацию о графическом процессоре и т.д.; браузерная информация может включать в себя, среди прочего, имя/модель движка браузера (например, webkit, gekko, trident), версию, поддерживаемые функции HTML5 и JS; информация о приложениях может включать в себя информацию о конкретном приложении, размещенном на пользовательских устройствах, например, почтовом приложении, информация может включать в себя, например, информацию о поставщике учетных записей электронной почты.
[0023] В одном примере во время синхронизации браузеры 130 могут передавать серверу 108 синхронизации информацию о функциях, которые могут выполняться браузером (например, печать, отправить по электронной почте, отобразить на экране, продолжить трансляцию видео, активировать камеру). Сервер 108 синхронизации делает доступной собранную информацию всем зарегистрированным устройствами, связанным с тем же профилем пользователя. В одном из вариантов осуществления информация может быть использована для удаленного управления одного пользовательского устройства через веб-браузер другого устройства, как это будет более подробно описано ниже.
[0024] После того как пользователь и устройства 102, 104, 106, связанные с пользователем, зарегистрированы и синхронизированы сервером 108 синхронизации, пользователь может использовать веб-браузер 130 одного из устройств 102, 104, 106 для управления веб-браузером и любыми управляемыми браузером операциями любого другого устройства из 102, 104 и 106, включая, например, службы операционной системы, программные приложения и различные внутренние и периферические устройства. Например, пользователь может использовать веб-браузер мобильного устройства 102 для управления веб-браузером настольного компьютера 104. В одном из аспектов подобное управление может быть облегчено с помощью удаленного управления веб-сервиса 120, предоставляемого сервером 118 службы. В частности, веб-служба 120 может предоставлять библиотеки функций 124 API, которые включают в себя множество API-функций, которые упрощают удаленное управление через браузер. Далее следует пример API-функций 124 удаленного управления через браузер:
Api.getDevice() предоставляет общую информацию об устройствах, синхронизированных с данным аккаунтом. Например, информация может содержать имя учетной записи (например, Sam@yandex.com).
Api.getDevice(device) предоставляет полную информацию о связанных с пользователем устройством.
Api.send(device, data) используется для передачи данных другому устройству/приложению. Например, API.send (Device_104, imagel.jpg).
Api.receive(device, callback) используется для получения данных от другого устройства/приложения. Например, полученное сообщение может содержать API.receive (Device_104, imagel.jpg).
Api.push(device, message, data) используется для передачи push-сообщений другому устройству. Например, API.push (Device_104 используется для передачи документа на печать).
[0025] В одном из примеров библиотеки сетевых API-функций 124 удаленного управления через браузер могут быть реализованы как функции API со стороны сервера, предоставляемые веб-службой 120. В другом примере библиотеки сетевых API-функций 124 удаленного управления через браузер могут быть реализованы как API-функции со стороны сервера, предоставляемые браузером 130 (например, дополнение для браузера, браузерное приложение, расширение) для любого из пользовательских устройств 102, 104 и 106.
[0027] Примерный сценарий действия операционной системы 100 для предоставления удаленного управления управлением через веб-браузер другого устройства представлен ниже. Например, пользователь может активировать веб-браузер мобильного устройства 102 и веб-браузер ПК 104. После активации браузеры могут автоматически проводить регистрацию и синхронизацию с помощью сервера 108 синхронизации. Во время синхронизации каждый браузер может предоставлять серверу 108 синхронизации информацию о функциях, которые может выполнять браузер на пользовательском устройстве. Пользователь может посещать некоторые сторонние веб-сайты 142 с помощью веб-браузера 130 мобильного устройства. Если посещенный веб-сайт 142 включает в себя страницы со встроенной сетевой API-функцией вызова удаленного управления, пользователь может активировать сетевые API-функции 124 удаленного управления нажатием на иконку или какой-либо другой компонент пользовательского интерфейса, связанного с управляемым браузером сетевым API 124. Иконка может быть расположена, например, в углу окна браузера или встроена в код запрошенной веб-страницы 142. Пользователь может активировать управляемый браузерный сетевой API 124 с помощью, например, нажатия пальцем или мышью на иконку или перетаскивания объекта, например, файла или папки, на иконку и так далее.
[0028] После того как сетевой API 124 удаленного управления был активирован, он может запрашивать сервер 108 синхронизации на предоставление от базы 114 данных от профиля пользователя информации о доступных зарегистрированных пользовательских устройствах (например, ПК 104) и функциях, которые могут выполнять браузеры зарегистрированных устройств. Полученная информация может отображаться пользователю с помощью выпадающего меню, кнопок-флажков или любого другого подходящего формата. Команды могут включать в себя ряд функций, которые пользователь может выбирать для выполнения целевого веб-браузера на ПК 104. Функции, например, могут включать в себя печать, отправить по электронной почте, отобразить на экране, продолжить трансляцию видео, активировать камеру и другие функции в пределах возможностей целевого веб-браузера.
[0029] После того как пользователь выбирает целевое устройство ПК 104 и функцию, которую необходимо выполнить удаленно на устройстве 104, веб-браузер инициирующего мобильного устройства 102 передает через сетевые API-функции 124 сетевой службе 120 удаленного управления веб-сервера 118 удаленную команду, которая может включать в себя выбор целевого устройства, выбор функции и любую необходимую идентифицирующую информацию, например, хэш идентификатора инициирующего пользовательского устройства и другую информацию. Сетевая служба 120 удаленного доступа может в свою очередь передавать команду удаленного управления через, например, технологию push, например Службу Push уведомлений Apple (APNS) или Службу облачных сообщений Google (GCM) к сетевым API-функциям браузера ПК 104, которая выполняет функцию, связанную с полученной командой удаленного управления. В различных аспектах передачи между мобильным устройством 102, сетевой службой 120 и ПК 104 может быть реализована с использованием, например, протокола защищенной передачи гипертекста (HTTPS) и расширениями HTTPS (например, web-socket) или протокола взаимодействия Peer-to-Peer (например, сетевые коммуникации в реальном времени (WebRTC)). Веб-браузер целевого устройства ПК 104 может получать команду удаленного управления и выполнять функцию, связанную с командой. С этой целью пользователь может удаленно управлять веб-браузером целевого устройства с помощью веб-браузера инициирующего устройства с помощью сетевой службы 120 удаленного управления.
[0030] Например, в соответствии с одним вариантом осуществления технологии пользователь может читать документ с помощью веб-браузера на мобильном устройстве 102. Если пользователь решает распечатать документ, пользователь может активировать сетевой API в веб-браузере, выбрать команду "печать" и настольный компьютер 104 как целевого устройства. Сетевой API может затем передавать команду через сервер 118 службы веб-браузеру ПК 104, который затем может выполнять команду, т.е. распечатать документ. Аналогично, пользователь может добавлять фотографии на веб-сайты в рамках веб-браузера настольного компьютера 104 с помощью камеры мобильного устройства 102. В другом примере пользователь может использовать мобильное устройство 102, чтобы просмотреть место на карте, одновременно используя настольный компьютер 104 для взаимодействия с панорамным видом того же места на карте.
[0031] На Фиг. 2 представлена блок-схема, иллюстрирующая вариант осуществления способа предоставления удаленного управления устройством через веб-браузер в соответствии с одним объектом изобретения. Процесс, описанный в этой блок-схеме, может быть реализован на инициирующем команды устройстве, например, мобильном устройстве 102. Как показано на Фиг. 2, процесс 200 может начинаться на этапе 202, где пользователь может зарегистрировать одно или несколько пользовательских устройств (например, мобильное устройство 102 и ПК 104) с помощью сервера 108 синхронизации. На этапе 204 зарегистрированные пользовательские устройства (например, мобильное устройство 102 и ПК 104) могут синхронизировать их веб-браузеры с сервером 108 синхронизации. На этапе 206 пользователь первого устройства (например, мобильного устройства 102) получает доступ через веб-браузер пользовательского устройства к сторонней веб-странице, которая предоставляет собой сетевой интерфейс программирования приложений (API) удаленного доступа, выполненный с возможностью выполнять удаленные команды на одном или нескольких вторых пользовательских устройствах. Сетевые API включают в себя API-функции 144 вызова библиотеки API-функций 142, которые предоставляют удаленное управление целевыми пользовательскими устройствами. На этапе 208 пользователь может выбирать через сетевой API команду удаленного управления. На этапе 310 сетевой API 124 может передавать команду удаленного управления целевому устройству (например, ПК 104).
[0032] На Фиг. 3 представлена блок-схема, иллюстрирующая вариант осуществления способа предоставления удаленного управления устройством через веб-браузер в соответствии с одним объектом изобретения. Процесс, описанный в этой блок-схеме, может быть реализован на сервере 108 синхронизации. Как показано на Фиг. 3, процесс 300 может начинаться на этапе 302, где пользователь и связанные с пользователем устройства могут быть зарегистрированы. Например, через модуль 112 регистрации пользователь может зарегистрировать свой идентификатор в пользовательском профиле, который сохранен в базе 114 данных пользовательских профилей сервера 108 синхронизации. На этапе 304 браузеры соответствующих пользовательских устройств могут быть синхронизированы. Например, модуль 116 синхронизации сервера 108 синхронизации могут собирать с браузеров каждого зарегистрированного устройства информацию о конфигурации, включая информацию о функциях, выполняемых браузером.
[0033] На Фиг. 4 представлена блок-схема, иллюстрирующая вариант осуществления способа предоставления удаленного управления устройством через веб-браузер в соответствии с одним объектом изобретения. Процесс, описанный в данной блок-схеме, может быть реализован с помощью сетевой службы 120 удаленного управления, размещенной на сервере 118 службы. Как показано на Фиг.4, процесс 400 может начинаться на этапе 402, где пользователь может активировать через веб-браузер первого пользовательского устройства сетевую службу 120 удаленного управления. Сетевая служба 120 может быть активирована через один или несколько соответственных API-функций 124 удаленного управления. На этапе 404 функции 124 удаленного управления могут получать от сервера 108 синхронизации информацию по меньшей мере об одном втором пользовательском устройстве, связанном с первым пользовательским устройством и одним или несколькими удаленными командами, которые поддерживаются веб-браузером второго пользовательского устройства. На этапе 406 сетевые API-функции 124 получают удаленную команду от пользователя, которая инициирует выполнение веб-браузером второго устройства функции, связанной с удаленной командой. Способ далее включает в себя передачу через сетевой API выбранной удаленной команды, которая инициирует выполнение веб-браузером второго устройства функции на втором пользовательском устройстве.
[0034] На Фиг. 5 представлен вариант осуществления компьютерной системы 5, которая может быть использована для реализации описанных систем и способов предоставления удаленного управления устройством через веб-браузер в соответствии с одним вариантом осуществления технологии. Компьютерная система 5 может включать в себя (но не ограничена ими) компьютер, ноутбук, планшет, смартфон, мобильное устройство, сетевой сервер, роутер или другой тип обрабатывающего устройства. Как показано, компьютерная система 5 может включать в себя один или несколько аппаратных процессоров 15, память 20, один или несколько жестких дисков 30, оптических приводов 35, последовательных портов 40, графическую карту 45, звуковую карту 50 и сетевую(ые) карту(ы) 55, соединенную с системной шиной 10. Системная шина 10 может представлять собой шинную структуру любого типа, который включает в себя шину памяти, контроллер памяти, периферическую шину и локальную шину, использующую любой из множества известных шинных архитектур. Процессор 15 может включать в себя одно или несколько процессоров Intel Core 2 Quad 2.33 ГГц или другой тип микропроцессоров.
[0035] Системная память 20 может включать в себя постоянную память (ПЗУ) 21 и оперативную память (ОЗУ) 23. Память 20 может быть реализована как динамическое ОЗУ, стираемое программируемое ПЗУ, электрически стираемое программируемое ПЗУ, флэш-память или любая другая архитектура памяти. ПЗУ 21 хранит базовую систему ввода/вывода (BIOS), содержащую основные процедуры, которые помогают передавать информацию между модулями компьютерной системы 5, например, во время запуска. ОЗУ 23 хранит операционную систему 24 (ОС), например Windows 7 Professional или другой тип операционной системы, который отвечает за управление и координацию процессов и распределения аппаратных ресурсов в компьютерной системе 5. Память 20 также хранит приложения и программы 25. Память 20 также сохраняет различные данные 26 этапа исполнения, используемые программами 25.
[0036] Компьютерная система 5 может дополнительно включать в себя жесткий(е) диск(и) 30, например SATA HDD, и оптический(е) привод(ы) 35 для чтения или записи съемного оптического диска, например CD-ROM, DVD-ROM или другого оптического носителя. Диски 30 и 35 и связанные с ними машиночитаемые носители обеспечивают энергонезависимое хранение машиночитаемых инструкций, структур данных, приложений и программных модулей/субпроцедур, которые реализуют описанные здесь алгоритмы и способы. Несмотря на то, что примерная компьютерная система 5 использует магнитные и оптические диски, специалисты в данной области техники оценят, что в альтернативных аспектах компьютерной системы 5 также могут быть использованы другие типы машиночитаемых носителей, которые способные хранить данные, доступные компьютерной системе 5, например, магнитные кассеты, флэш-карты памяти, цифровые видеодиски, ОЗУ, ПЗУ, стираемое программируемое ПЗУ и другие типы памяти.
[0037] Компьютерная система 5 дополнительно включает в себя множество последовательных портов 40, например, универсальную последовательную шину (USB), для подключения устройств(а) 75 ввода данных, таких как клавиатура, мышь, сенсорная панель и прочие. Последовательные порты 40 также могут быть использованы для подключения устройств(а) 80 вывода данных, таких как принтер, сканер и другие, а также других периферийных устройств(а) 85, например, внешних устройств хранения данных и т.п. Система 5 также может включать в себя видеокарту 45, например nVidia GeForce GT 240М или другую видеокарту, для взаимодействия с экраном 60 или другим устройством воспроизведения видео, например, сенсорным экраном. Система 5 также может включать в себя звуковую карту 50 для воспроизведения звука через внутренние или внешние динамики 65. Кроме того, система 5 может включать в себя сетевую(ые) карту(ы) 55, такие как Ethernet, WiFi, GSM, Bluetooth или другой проводной, беспроводной или сотовый сетевой интерфейс для подключения компьютерной системы 5 к сети 70, например, к сети Интернет.
[0038] В различных аспектах, системы и способы, описанные здесь, могут быть реализованы на аппаратном обеспечении, прикладном программном обеспечении, системном программном обеспечении или любой из их комбинаций. При реализации в виде прикладного программного обеспечения способы могут быть сохранены в виде одной или нескольких инструкций или кода на постоянном машиночитаемом носителе. Машиночитаемый носитель включает в себя хранилище данных. В качестве примера, а не ограничения, подобный машиночитаемый носитель может представлять собой ОЗУ, ПЗУ, электрически стираемое программируемое ПЗУ, флэш-память или любой другой тип электрического, магнитного или оптического носителя, или любой другой носитель, который может быть использован для переноса или хранения желаемого программного кода в форме инструкций или структур данных, к которым может обращаться процессор компьютера общего назначения.
[0039] Для ясности стоит отметить, что не все обычные признаки аспектов описаны здесь. Следует иметь в виду, что при модификации какого-либо фактического варианта осуществления технологии необходимо принять ряд специфичных для варианта осуществления решений для достижения конкретных целей разработчика, и эти конкретные цели будут отличаться для различных вариантов осуществления и для различных разработчиков. Следует иметь в виду, что подобная разработка может быть сложной и затратной по времени, но тем не менее не будет представлять сложности для опытных специалистов в данной области техники, обладающих преимуществом от прочтения настоящего описания.
[0040] Кроме того, следует иметь в виду, что фразеология и терминология используется здесь в целях описания, а не ограничения, таким образом, терминология или фразеология настоящего описания должна интерпретироваться специалистами в данной области техники с учетом представленных здесь указаний и руководства в сочетании со знаниями специалистов в соответственной(ых) области(ях) техники. Более того, ни одному термину в описании или формуле не следует приписывать особого или специального смысла, если явно не указано иное.
[0041] Различные описанные здесь аспекты охватывают нынешние и будущие известные эквиваленты известных модулей, указанных в данном описании в целях иллюстрации. Кроме того, несмотря на представленные и описанные аспекты и приложения, специалистам в данной области техники, обладающим преимуществом от прочтения настоящего описания, будет очевидно, что возможна реализация многих других вышеописанных модификаций без отступления от представленной здесь концепции технологии.