БЕСКОНТАКТНЫЙ УДАЛЕННЫЙ ДОСТУП К ПРОГРАММНОМУ ПРИЛОЖЕНИЮ
CONTACTLESS REMOTE ACCESS TO SOFTWARE APPLICATION

УРОВЕНЬ ТЕХНИКИ
[0001] Благодаря развитию и доступности широкополосного, а также беспроводного доступа к сети, удаленный доступ к программным приложениям и данным широко распространен и стал обычным явлением. Вдобавок, пользователи реализуют доступ к программным приложениям и данным, используя постоянно растущее многообразие клиентских устройств (например, устройства мобильной связи, настольные вычислительные устройства, лэптоп/ноутбук/настольные компьютеры, и т.д.). Данные могут передаваться на устройство мобильной связи при помощи удаленного сервера, посредством сетей мобильной связи стандарта 3G и 4G или беспроводных сетей, таких как WiFi и WiMax. Большинство устройств мобильной связи имеют доступ к интернету и могут взаимодействовать с различными типами программных приложений.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0002] Данный документ описывает системы и способы бесконтактного удаленного доступа к программному приложению, выполняемому, например, на сервере. В соответствии с некоторыми осуществлениями данного изобретения описывается способ, который обеспечивает удаленный доступ к находящемуся на сервере программному. приложению. Метод, который включает в себя предоставление программы удаленного доступа в серверном вычислительном устройстве; прием информации серверным вычислительным устройством из клиента, чтобы получить доступ к приложению; захват экранных данных; формирование представления данных из экранных данных; обновление модели состояния, содержащей соответствующее состояние приложения; и передача представления данных и модели состояния клиенту.
[0003] В соответствии с некоторыми осуществлениями данного изобретения, описывается второй способ, обеспечивающий удаленный доступ к находящемуся на сервере приложению. Способ, который может включать в себя предоставление программы удаленного доступа в серверном вычислительном устройстве; перечисление, по меньшей мере, одного унифицированного локатора ресурса (URL), который связан, по меньшей мере, с одним приложением; прием информации из клиента, по меньшей мере, с одним URL; отслеживание экранных данных, связанных с, по меньшей мере, одним приложением, связанным с, по меньшей мере, одним URL; формирование представления данных из экранных данных; и передача представления данных клиенту.
[0004] Данное изобретение относится к способу бесконтактного удаленного доступа к программному приложению. Способ, который может включать в себя предоставление программы удаленного доступа в серверном вычислительном устройстве; предоставление приложения захвата экранных данных, которое контролирует сформированное приложением состояние дисплейного интерфейса на наличие изменений состояния интерфейсного дисплея; отслеживает экранные данные, соответствующие интерфейсному дисплею; формирует представление данных из экранных данных; принимает в серверном вычислительном устройстве запрос доступа к программному приложению; обновляет модель состояния, которая включает в себя соответствующее состояние программного приложения, при этом соответствующее состояние включает в себя, по меньшей мере, один логический элемент, содержащий информацию об -интерфейсном дисплее программного приложения; и в ответ на запрос передает представление данных и модель состояния при помощи серверной программы удаленного доступа.
[0005] Данное изобретение также относится к способу обеспечения удаленного доступа к функционирующему на сервере программному приложению, включающему в себя программу удаленного доступа в серверном вычислительном устройстве; определение программных приложений, которые выполняются на серверном вычислительном устройстве; перечисление унифицированного локатора ресурса (URL), который связан с каждым программным приложением, определенным серверным вычислительным устройством для выполнения; предоставление доступа к URL каждого приложения, определенного серверным вычислительным устройством для выполнения; прием выбранного из клиентского вычислительного устройства URL, выбранного программным приложением; и предоставление удаленного доступа к программному приложению в URL.
[0006] Другие системы, способы, признаки и/или преимущества будут или могут стать очевидными для специалистов в данной области техники при рассмотрении следующих чертежей и подробного описания. Предполагается, что все подобные дополнительные системы, способы, признаки и/или преимущества включены в это описание и защищены прилагаемой формулой.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0007] Элементы чертежей не обязательно изображены в масштабе относительно друг друга. Подобным образом, определяются номера позиций соответствующих элементов по всему перечню фигур.
[0008] Фиг. 1 является упрощенной блок-схемой, которая иллюстрирует систему для обеспечения удаленного доступа к программному приложению, посредством компьютерной сети;
[0009] Фиг. 2A-2C являются упрощенными блок-схемами, иллюстрирующими работу приложения захвата экрана и серверной и клиентской программ(ы) удаленного доступа;
[0010] Фиг 3 иллюстрирует модель состояния системы, показанной на Фиг. 1;
[0011] Фиг. 4 иллюстрирует функциональную диаграмму типовых операций, выполняемых системой, показанной на Фиг. 1-3;
[0012] Фиг. 5 иллюстрирует функциональную диаграмму типовых операций, выполняемых системой, показанной на Фиг. 1-2; и
[0013] Фиг. 6 иллюстрирует типовую вычислительную среду.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0014] Если не определено другим образом, все технические и научные термины, используемые в данном документе, имеют такое же значение, как они обычно понимаются специалистами в данной области техники. Способы и материалы, которые подобны или равноценны описанным в данном документе, могут быть использованы на практике или при тестировании настоящего описания изобретения. В то время как осуществления данного изобретения будут описаны для реализации удаленного доступа и визуализации программных приложений, для специалистов в данной области техники станет очевидным, что осуществления данного изобретения не ограничены изложенным.
[0015] Ссылаясь на Фиг. 1 и 2A-2C, проиллюстрирована система 100 для обеспечения удаленного доступа к программному приложению посредством компьютерной сети. Система 100 может содержать одно или более серверных вычислительных устройств 102A, 102B и одно или более клиентских вычислительных устройств 112A, 112B, 112C … 112N. Клиентские вычислительные устройства могут содержать, но не ограничиваются этим, беспроводное мобильное устройство, такое как, например, iPhone 112A или смартфон BlackBerry 112B, подключенный через коммуникационную сеть 110, такую как, например, интернет, к серверному вычислительному устройству 102A и/или серверному вычислительному устройству 102B. Подобным образом, клиентские вычислительные устройства могут также содержать настольный персональный компьютер или ноутбук 112C, или планшетное устройство 112N, которое подключено с помощью коммуникационной сети 110 к серверному вычислительному устройству 102A и/или серверному вычислительному устройству 102B. Следует отметить, что подключения к коммуникационной сети 110 могут быть соединением любого типа, например, Wi-Fi (IEEE 802.11x), WiMax (IEEE 802.16), Ethernet, 3G, 4G, и т.д.
[0016] Серверное вычислительное устройство 102A может быть подключено к первой локальной вычислительной сети (LAN) 109A и серверное вычислительное устройство 102B подключено ко второй вычислительной сети (LAN) 109B, которые подключены к коммуникационной сети 110. Следует отметить, что к коммуникационной сети 110 может быть подключено любое количество компьютеров-серверов, в соответствии с предлагаемым раскрытием изобретения. Фиг. 6 иллюстрирует типовое вычислительное устройство, которое может быть использовано как серверное вычислительное устройство 102A, серверное вычислительное устройство 102B, или клиентское вычислительное устройство 112A, 112B, 112C … 112N.
[0017] Как показано на Фиг. 1, клиентская программа удаленного доступа выполняется на процессоре 118A, 118B, 118C … 118N клиентского вычислительного устройства 112A, 112B, 112C … 112N. Клиентская программа удаленного доступа предоставлена в виде исполняемых команд, хранящиихся в памяти 120A, 120B, 120C … 120N клиентского вычислительного устройства 112A, 112B, 112C … 112N. Клиентская программа удаленного доступа обменивается данными с пользовательской интерактивной программой, такой как, например, веб-браузер или нативное приложение. Пользовательская интерактивная программа может отображать экранные данные (из серверного вычислительного устройства 102A или 102B), или принимать пользовательские входные данные для взаимодействия с первым и вторым приложениями захвата экрана, используя, например, графический дисплей с сенсорным экраном 1 НА, 114N, графический дисплей 114B, или клавиатуру 116B, 116C клиентского вычислительного устройства.
[0018] Серверные программы удаленного доступа 107A и 107B и клиентская программа удаленного доступа могут быть реализованы при помощи стандартных языков программирования, и связь возможна, благодаря использованию стандартных технологий связи, таких как, например, гипертекстовый транспортный протокол (HTTP), виртуальные частные сети (VPN), и протокол уровня защищенных сокетов (SSL), которые хорошо известны специалистам в данной области техники. К тому же, реализация серверного удаленного приложения может обеспечиваться на сервере, отличном от сервера, на котором выполняется приложение захвата экрана. В такой реализации, экранные данные могут быть переданы через прямое или сетевое подключение между сервером, выполняющим приложение захвата экрана, и другим сервером, выполняющим серверное удаленное приложение. В некоторых реализациях, серверные программы удаленного доступа 107A и 107B и клиентская программа удаленного доступа позволяют реализовать варианты настоящего описания изобретения как усовершенствование существующих технологий, как на стороне сервера так и на стороне клиента.
[0019] Как показано на Фиг. 2A, в соответствии с некоторыми реализациями, серверное вычислительное устройство 102A может выполнять приложение захвата экрана 105A, контролирующее интерфейс дисплея, сформированный программным приложением 103A, на наличие событий, которые могут стать причиной изменения пикселей на дисплее. Приложение захвата экрана 103A хранится в памяти 106A и выполняется процессором 104A серверного вычислительного устройства 102A. При появлении событий, приложение захвата экрана 105A считывает измененные области дисплея из буфера кадра изображения (не показан), и может сжимать данные изображения на экране, и отправляет сжатые данные в виде изображения соответствующей серверной программе удаленного доступа 107A. Серверная программа удаленного доступа 107A хранится в памяти 106A и выполняется процессором 104A серверного вычислительного устройства 102A. В согласии с предлагаемым раскрытием изобретения, взаимодействие программного приложения захвата экрана 105A с программным приложением 103A обеспечивает возможность бесконтактной реализации удаленного доступа к программному приложению 103A, как описано ниже.
[0020] Для обеспечения удаленного доступа к программному приложению 103A, устанавливается связь между, например, клиентским вычислительным устройством и серверным вычислительным устройством 102A, в котором перечисленные в URL ресурсы соответствуют программному приложению 103A. При этом, связь разрешена серверной программой удаленного доступа 107A и клиентской программой удаленного доступа, как показано на Фиг. 2A. Как описано выше, для связи могут быть использованы любые типы сетей. Следует отметить, что любое из клиентских вычислительных устройств 112A, 112B, 112C … 112N может быть клиентским устройством, показанным на Фиг. 2A.
[0021] Во время сеанса удаленной связи с клиентским вычислительным устройством серверная программа удаленного доступа 107A принимает экранные данные от приложения захвата экрана 105A. При получении данных, серверная программа удаленного доступа 107A формирует представление данных 109A из данных изображения на экране и передает эти данные клиентской программе удаленного доступа.
[0022] В дополнение к этому, представление данных 109A может быть сформировано в соответствии с аппаратными возможностями клиентского вычислительного устройства 112A, 112B, 112C или 112N, например, учитывая вычислительную производительность, объем памяти;, тип графического дисплея, и тип пользовательского интерфейса. Поэтому, серверное вычислительное устройство 102A может масштабировать или изменять размер экранных данных, которые передаются клиентскому вычислительному устройству, так что экранные данные отображаются на клиентских вычислительных устройствах 112A, 112B, 112C … 112N, в соответствии с характеристиками этих устройств. По этой причине, каждый тип устройства, участвующего в сеансе взаимодействия, представляет собой пользовательский интерфейс, имеющий соответствующее устройству разрешение, основанное на содержащейся в модели состояния Фиг. 3 информации, как описано ниже. Например, представление данных сформированное и переданное для лэптопа отличается от представления данных для мобильных устройств, например iPhone.
[0023] В некоторых реализациях, представление данных 109A формируется, основываясь на выделении окна или области дисплея программного приложения 103A. Например, выделение области или окна для отображения на клиентском вычислительном устройстве может быть принято серверным вычислительным устройством 102A. Серверное вычислительное устройство 102A может затем обрезать экранные данные, так что только выделенная область или окно будут сформированы в представление данных 109A и переданы серверной программой удаленного доступа 107A клиентской программе удаленного доступа.
[0024] В некоторых реализациях, представление данных 109A может также предоставляться серверным вычислительным устройством 102A. Это позволяет пользователю в серверном вычислительном устройстве 102A увидеть, что отображается в клиентском вычислительном устройстве 112A, 112B, 112C или 112N.
[0025] Ссылаясь на Фиг. 2B, в некоторых реализациях клиентское вычислительное устройство 112A, 112B, 112C или 112N может взаимодействовать с двумя программными приложениями 103A и 103B, выполняемыми на серверном вычислительном устройстве 102A и 102B при помощи подключения программных приложений 103A и 103B к соответственно перечисленным URL, связанным с каждым из программных приложений 103A и 103B. По этой причине, клиентское вычислительное устройство 112A, 112B, 112C или 112N может участвовать в совместном сеансе с серверным вычислительным устройством 102A и 102B, и может отображать вид, содержащий в себе дисплей программных приложений 103A и 103B.
[0026] В дополнение к этому, дисплей программных приложений 103A и 103B может быть представлен при помощи процесса, называемого рекомбинацией, который может основываться на информации, содержащейся в модели состояния на Фиг. 3, описанной далее. При рекомбинации, программные приложения 103A и 103B незаметно для пользователя объединены в один и тот же пользовательский интерфейс клиентского вычислительного устройства 112A, 112B, 112C или 112N так, что области просмотра обоих программных приложений 103A и 103B могут отображаться одновременно. В дополнение к этому, функциональные возможности и средства управления, связанные с программными приложениями 103A и 103B могут быть объединены в один пользовательский интерфейс.
[0027] Как показано на Фиг. 2B, соответственно некоторым реализациям, серверные компьютеры 102A и 102B выполняют соответствующие приложения захвата экрана 105A и 105B, которые следят за сформированным программными приложениями 103A и 103B состоянием дисплейного интерфейса, на наличие событий, могущих стать причиной изменения пикселей на дисплее. При появлении изменений, приложение захвата экрана 105A и 105B считывает измененные области дисплея из буфера кадра изображения (не показан), и может сжимать данные изображения на экране, и отправляет сжатые данные в виде изображения соответствующей серверной программе удаленного доступа 107A и 107B. Как описано выше, взаимодействие приложений захвата экрана 105A и 105B с программным приложением 103A и программным приложением 103B, соответственно, обеспечивает возможность бесконтактной реализации удаленного доступа к программному приложению 103A и программному приложению 103B. Другие аспекты конфигурации Фиг. 2B осуществляются, по существу, аналогичным образом, как описано в отношении Фиг. 2A.
[0028] Ссылаясь на Фиг. 2C, в некоторых реализациях, два или более клиентских вычислительных устройств 112A, 112B, 112C … 112N могут совместно взаимодействовать с программным приложением 103A, выполняемым на серверном вычислительном устройстве 102A путем доступа к тому же перечисленному URL. По этой причине, каждое клиентское вычислительное устройство 112A, 112B, 112C … 112N (и серверное вычислительное устройство 102A), участвующее в совместном сеансе, может отображать синхронизированный вид дисплея программного приложения 103A, который предоставляется в перечисленном URL. В качестве варианта, клиентские вычислительные устройства могут взаимодействовать с программным приложением 103B, выполняемым на серверном вычислительном устройстве 102B.
[0029] Во время сеанса удаленной связи с клиентским вычислительным устройством серверная программа удаленного доступа 107A принимает экранные данные от приложения захвата экрана 105A. При получении данных, серверная программа удаленного доступа 107A формирует первое представление данных 109A из данных изображения на экране и передает эти данные клиентским программам удаленного доступа 112A и 112N. Другие аспекты конфигурации Фиг. 2C осуществляются, по существу, аналогичным образом, как описано в отношении Фиг. 2A.
[0030] Конфигурация Фиг. 2C также предполагает возможность для совместного просмотра программного приложения 103A. Например, пользователь клиентского вычислительного устройства 112A и пользователь клиентского вычислительного устройства 112N может пожелать принять участие в сеансе, который включает в себя программное приложение 103A в серверном вычислительном устройстве 102A. Клиентское вычислительное устройство 112A и клиентское вычислительное устройство 112N может иметь удаленный доступ к программному приложению 103A, при помощи клиентской программы удаленного доступа, которая обменивается данными с пользовательской интерактивной программой, такой как, например, веб-браузер. Совместный просмотр программного приложения 103A дает возможность пользователям обоих клиентских вычислительных устройств 112A и 112N взаимодействовать и просматривать одни и те же документы, изображения, и т.д. при помощи соответствующего пользовательского веб-браузера. Следовательно, если пользователь клиентского вычислительного устройства 112A запрашивает информацию для отображения из программного приложения 103A, другой браузер во время сеанса, выполняемого на клиентском вычислительном устройстве 112N будет принимать ту же самую информацию.
[0031] В такой реализации, программа удаленного доступа 107A может функционировать как прокси-сервер для перехвата запросов от различных веб-браузеров во время сеанса совместного просмотра. Веб-браузер, единоразово настроенный для использования программы удаленного доступа 107A как прокси-сервер, отправляет полный URL запрос программе удаленного доступа 107A. Программа удаленного доступа 107A затем извлекает экранные данные из приложения захвата экрана 105A, связанные с программным приложением 103A, и отправляет результат запроса обратно веб-браузерам.
[0032] Веб-браузеры могут выполнять клиентскую программу удаленного доступа (например, Flash, Silverlight, Java), чтобы предоставить возможность принять информацию сеансу совместного просмотра. Дополнительно или в качестве варианта, может быть использован HTML5 для того, чтобы позволить веб-браузеру, по умолчанию, принять информацию. Соответственно, веб-браузер может быть клиентской программой удаленного доступа.
[0033] В некоторых реализациях пользователи совместного просмотра в пределах системы 100 могут взаимодействовать с множеством программных приложений 103A и 103B (например, гибридных конфигурациях Фиг. 2B и 2C). Таким образом, данное осуществление изобретения может предполагать возможность рекомбинации программных приложений 103A и 103B, при этом приложения незаметно для пользователя объединены в один и тот же пользовательский интерфейс, предусмотренный на каждом клиентском вычислительном устройстве 112A, 112B, 112C … 112N, принимающем участие в сеансе совместного просмотра. Рекомбинация может обеспечиваться на основании информации, содержащейся в модели состояния на Фиг. 3, описанной ниже.
[0034] В некоторых реализациях действие программы удаленного доступа (серверной и клиентской) осуществляется совместно с моделью состояния 300, как показано на Фиг. 3. При выполнении клиентской программы удаленного доступа модель состояния 300 обновляется, в соответствии с принятыми от пользовательской интерфейсной программы пользовательскими входными данными. Программа удаленного доступа может формировать управляющие данные, в соответствии с обновленной моделью состояния, и обеспечивать выполнение того же приложения на серверном вычислительном устройстве 102A или 102B (посредством приложения захвата экрана). Приложение может быть любым приложением выполняемым на серверном вычислительном устройстве 102A или 102B, с которым взаимодействует конечный пользователь при помощи одного из клиентских вычислительных устройств 112A, 112B, 112C … 112N.
[0035] При получении данных приложения из приложения захвата экрана, серверная программа удаленного доступа обновляет модель состояния 300 в соответствии с экранными данными или данными приложения, формирует представление данных в соответствии с обновленной моделью состояния, и обеспечивает выполнение той же пользовательской интерфейсной программы на клиентском вычислительном устройстве. Модель состояния 300 включает в себя совокупность логических элементов приложений с соответствующими состояниями приложений, с логическими элементами, расположенными в иерархическом порядке. Например, логическими элементами могут быть экран, меню, подменю, кнопка (экранная кнопка), и т.д., которые формируют пользовательский интерфейс приложения. Это позволяет, например, клиентскому устройству отображать логические элементы в исходном формате. По этой причине, меню программного приложения 103A, представленное на мобильном телефоне будет выглядеть как собственное меню мобильного телефона. Подобным образом, меню приложения 103A, представленное на настольном компьютере будет выглядеть подобно собственному меню операционной системы настольного компьютера. В соответствии с аспектами настоящего осуществления изобретения, изображение на экране может передаваться к клиентскому вычислительному устройству как единичный логический элемент в выделенном канале. Изображение на экране может ссылаться на модель состояния, чтобы позволить клиентской программе удаленного доступа восстановить из выделенного канала изображение на экране и отобразить его на клиентском вычислительном устройстве. По этой причине экран будет иметь идентичный вид на каждом клиентском вычислительном устройстве 112A, 112B, 112C … 112N, несмотря на то, что он может масштабироваться в соответствии с характеристиками каждого устройства.
[0036] Модель состояния 300 определяется из условия, чтобы каждый логический элемент был связан с соответствующим состоянием приложения. Модель состояния 300 может быть определена из условия, чтобы логические элементы были связаны с взаимодействиями пользователя. Например, логические элементы приложения определяются из условия, чтобы логические элементы включали в себя переходные элементы с каждым переходным элементом, связывающим изменение модели состояния 300 с одним состоянием управляющих данных и связанным с ним приложением представления данных.
[0037] В некоторых реализациях, информация о состоянии может включать ссылку или ссылки на одну или более прямоугольные области, которые включают в себя сформированное приложением изображение экрана. Клиентская программа удаленного доступа может осуществлять управление с целью предоставления пользователю выбора одной или более прямоугольных областей для их отображения на клиентском устройстве. В некоторых реализациях управление может обеспечиваться выбором одной или более прямоугольных областей данных изображения экрана, созданных многочисленными программными приложениями (например, 103A и 103B) по выбору пользователя.
[0038] В некоторых реализациях как отмечалось выше с учетом Фиг. 2A-2C, информация о состоянии может содержать информацию о состоянии дисплея клиентского вычислительного устройства. Например, разрешение дисплея может обеспечиваться в модели состояния 300, которая может использоваться как часть рестуктуризации представления данных, соответственно характеристикам клиентского вычислительного устройства. Модель состояния также может содержать информацию, которая может использоваться для задач рекомбинации.
[0039] Фиг. 4 иллюстрирует принцип работы функциональной схемы 400 процессов, выполняемых для обеспечения удаленного доступа к находящемуся на сервере приложению, использующему модель состояния 300. В 402, программа удаленного доступа реализуется серверным вычислительным устройством. Например, серверная программа удаленного доступа 107A может реализовываться на серверном вычислительном устройстве 102A для обеспечения удаленного доступа клиентскому вычислительному устройству, выполняющему дополнительную клиентскую программу удаленного доступа.
[0040] В 404, информация принимается из клиента. Пользователь может подключиться к серверному вычислительному устройству 102A, используя пользовательскую программу взаимодействия на клиентском вычислительном устройстве. Клиент также может предоставлять серверной программе удаленного доступа 107A информацию о характеристиках и возможностях клиентского вычислительного устройства.
[0041] В 406, отслеживается связанный с приложением экран. Изображение на дисплее, захваченное приложением захвата экрана 105A, формируется программным приложением 103A. В 407, при необходимости, экран может быть масштабирован или обрезан приложением (службой). В 408, представление данных формируется для передачи клиенту. В соответствии с характеристиками и возможностями клиентского вычислительного устройства, служба (например, приложение захвата экрана) может масштабировать или обрезать информацию дисплея, предоставленную клиентскому вычислительному устройству таким образом, что соответственно определяется размер для клиентского вычислительного устройства.
[0042] В 410, обновляется модель состояния. Как описывалось выше, модель состояния 300 определяется таким образом, что каждый логический элемент связан с соответствующим состоянием приложения. Изображение на экране, передающееся по выделенному каналу, может быть единичным логическим элементом, соответствующим модели состояния. В 412, представление данных и модель состояния передаются клиенту. Передача данных может осуществляться посредством коммуникационной сети 110. В 414, экранные данные извлекаются из выделенного канала и представляются на клиентском устройстве для просмотра.
[0043] В соответствии с некоторыми реализациями, пользователь может взаимодействовать с программным приложением 103A при помощи пользовательской программы для взаимодействия и совместной работы клиентской и серверной программ удаленного доступа. По этой причине, взаимодействие(я) пользователя могут использоваться для обновления модели состояния в 416, которая может быть возвращена обратно серверному вычислительному устройству 102A для обновления приложения 103A.
[0044] Поэтому упомянутое выше изображение, предоставляет систему и способ, который обеспечивает бесконтактный удаленный доступ к приложению, выполняемому на сервере.
[0045] Фиг. 5 иллюстрирует принцип работы функциональной схемы 500 процессов, выполняемых для обеспечения удаленного доступа к находящемуся на сервере приложению. В некоторых реализациях, серверные программы удаленного доступа 107A и 107 В формируют один или более унифицированные локаторы ресурса (URL), при помощи которых клиентское вычислительное устройство может подключиться к одному или более приложениям, выполняемым на серверном вычислительном устройстве 102A или 102B. Каждое приложение может иметь уникальный, связанный с ним URL. URL, передающие данные клиентскому вычислительному устройству, позволяют пользователю выбрать и взаимодействовать с одним или более приложением на серверном вычислительном устройстве. Например, в программе взаимодействия с пользователем, значки, ссылки, элементы меню, и т.д. могут представляться соответственно каждому перечисленному URL. Пользователь может выбирать URL путем выбора соответствующего значка, ссылки, элемента меню, и т.д.
[0046] В основе принципа работы 500, лежит описанный выше механизм URL, который используется для удаленного доступа к находящемуся на сервере приложению. В 502, программа удаленного доступа реализуется в серверном вычислительном устройстве для перечисления одного или более URL, соответствующих одному или более приложению. Например, программа удаленного доступа 107A может быть реализована на серверном вычислительном устройстве 102A. URL может иметь доступ к программе взаимодействия с пользователем на клиентском вычислительном устройстве для доступа, например, к приложению 103A, выполняемому на серверном вычислительном устройстве 102A. Серверная программа удаленного доступа 107A может определить какое приложение выполняется на серверном вычислительном устройстве 102A, чтобы перечислить URL, связанный с каждым приложением и обеспечить доступ к определенному в URL приложению.
[0047] В 504, информация принимается из клиента. Пользователь может соединиться с серверным вычислительным устройством 102A, путем подключения к одному или более перечисленных URL, которые предоставляются в программе взаимодействия с пользователем на клиентском вычислительном устройстве. Клиент также может предоставлять серверной программе удаленного доступа 107A информацию о характеристиках и возможностях клиентского вычислительного устройства.
[0048] В 506, захватывается связанный с приложением экран. Дисплей формируется программным приложением 103A, захваченным приложением захвата экрана 105A. В 508 формируется представление данных для передачи клиенту. В соответствии с характеристиками и возможностями клиентского вычислительного устройства, серверное вычислительное устройство 102A может масштабировать, изменять размер или обрезать информацию дисплея таким образом, что соответственно определяется размер для клиентского вычислительного устройства.
[0049] В 510 представление данных передается клиенту. Передача данных может осуществляться посредством коммуникационной сети 110. В 512 экранные данные представляются для просмотра на клиентском устройстве. В соответствии с некоторыми реализациями пользователь может взаимодействовать с программным приложением 103A при помощи программы взаимодействия с пользователем и совместной работы клиентской и серверной программ удаленного доступа. По этой причине, взаимодействие(я) пользователя могут использоваться для доступа к одному или более URL, представленным в программе взаимодействия с пользователем. В 514 соединение может быть установлено при помощи выбранного URL, так что пользователь может взаимодействовать с разными приложениями или с множеством приложений одновременно. Также, более чем одно клиентское вычислительное устройство может удаленно взаимодействовать с приложением в соответствии с Фиг. 3, чтобы обеспечить среду взаимодействия, в которой множество клиентских вычислительных устройств параллельно взаимодействуют с перечисленным в URL приложением.
[0050] Поэтому упомянутое выше изображение, предоставляет еще одну систему и способ, который обеспечивает бесконтактный удаленный доступ к приложению, выполняемому на сервере.
[0051] Фиг. 6 иллюстрирует типовую вычислительную среду, в котором были применены типовые реализации и аспекты данного изобретения. Вычислительная среда системы является лишь только одним примером соответствующей вычислительной среды и не предназначено для рекомендации каких-либо ограничений в отношении использования или функциональности.
[0052] Могут быть использованы другие перечисленные среды или конфигурации вычислительных систем общего или специального назначения. Примеры хорошо известных вычислительных систем, сред, и/или конфигураций, которые могут быть пригодными для использования, содержат, но не ограничено этим, персональные компьютеры, серверные компьютеры, мобильные устройства или лэптопы, мультипроцессорные системы, микропроцессорные системы, сетевые персональные компьютеры (PC), миникомпьютеры, мэйнфреймы, встраиваемые системы, распределенные вычислительные среды, включающие в себя любую из названных выше систем или устройств, и тому подобное.
[0053] Могут быть использованы исполняемые компьютером инструкции, такие как исполняемые компьютером программные модули. В основном, программные модули содержат процедуры, программы, объекты, компоненты, структуры данных, и т.д., которые выполняют частные задания или внедряют частные абстрактные типы данных. Распределенные вычислительные среды могут использоваться в случае выполнения заданий устройствами удаленной обработки данных, связанных между собой посредством коммуникационной сети или другой среды передачи данных. В распределенной вычислительной среде, программные модули и другие данные могут находиться как на локальных так и на удаленных компьютерных запоминающих носителях, включая запоминающие устройства.
[0054] На основании Фиг. 6, описанная в данном документе типовая система для реализации данного изобретения содержит вычислительное устройство, такое как вычислительное устройство 600. В основном, базовая конфигурация вычислительного устройства 600 обычно содержит, по меньшей мере, один процессорный блок 602 и память 604. В зависимости от требуемой конфигурации и типа вычислительного устройства, память 604 может быть энергозависимой (такое как оперативное запоминающее устройство (RAM)), энергонезависимой (такой как постоянное запоминающее устройство (ROM), флэш-память, и т.д.), или любые из двух комбинаций. Эта самая главная конфигурация проиллюстрирована Фиг. 6 штриховой линией 606.
[0055] Вычислительное устройство 600 может иметь дополнительные особенности/функции. Например, вычислительное устройство 600 может включать в себя дополнительное запоминающее устройство (съемное или несъемное), включая, но не ограничиваясь ими, магнитные или оптические диски или ленту. Так дополнительное запоминающее устройство проиллюстрировано на Фиг. 6 съемным запоминающим устройством 608 и несъемным запоминающим устройством 610.
[0056] Вычислительное устройство 600 обычно содержит множество практически осуществимых компьютерно-читаемых носителей. Осуществимыми на практике компьютерно-читаемыми носителями могут быть любые общедоступные носители, к которым может осуществлять доступ устройство 600 и включают в себя как энергозависимые, так и энергонезависимые носители, съемные или несъемные носители.
[0057] Осуществимые на практике компьютерные запоминающие устройства содержат энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией хранения информации, такими как компьютерно-читаемые инструкции, структуры данных, программные модули или другие данные. Память 604, съемный носитель 608, и несъемный носитель 610 являются примерами компьютерных носителей информации. Осуществимые на практике компьютерные запоминающие устройства включают, но не ограничиваются этим, оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), электрически стираемое перепрограммируемое постоянное запоминающее устройство (EEPROM), флэш-память или другая технология запоминающих устройств, CD-ROM, универсальный цифровой диск (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитная лента, магнитное дисковое запоминающее устройство или другие магнитные устройства хранения информации, или любой другой носитель, который может быть использован для хранения требуемой информации и доступный для вычислительного устройства 600. Любой такой компьютерный носитель данных может быть частью вычислительного устройства 600.
[0058] Вычислительное устройство 600 может иметь коммуникационное подключение(я) 612 которое позволяет устройству обмениваться данными с другими устройствами. Вычислительное устройство 600 может также иметь устройство(а) ввода 614 такое как клавиатура, мышь, цифровая ручка, голосовое устройство ввода, сенсорное устройство ввода, и т.д. Устройство(а) вывода 616, такое как дисплей, колонки, принтер, и т.д. также могут входить в состав. Все эти устройства хорошо известны специалистам в данной области техники и не нуждаются в обсуждении в данном документе.
[0059] Следует понимать, что различные способы, описанные в данном документе, могут быть реализованы вместе с аппаратным или программным обеспечением или, при необходимости, с их комбинацией. Поэтому, способы и устройство данного раскрытого предмета изобретения, или некоторые аспекты или части такового, могут содержать программный код (т.е., инструкции), реализованные в материальном носителе, таком как гибкие дискеты, CD-ROM, накопители на жестких магнитных дисках, или любые другие носители информации, при этом, когда программный код загружается и выполняется машиной, такой как компьютер, машина становится устройством для применения раскрытого предмета изобретения. В случае выполнения программного кода на программируемых компьютерах, вычислительное устройство, в основном, содержит процессор, носитель информации доступный для чтения процессором (включая энергозависимую и энергонезависимую память и/или элементы памяти), по меньшей мере одно устройство ввода, и по меньшей мере одно устройство вывода. Одна или более программ может реализовывать или использовать процессы, описанные вместе с настоящим раскрытым предметом изобретения, например, посредством использования прикладного программного интерфейса (API), повторно используемых элементов управления, и тому подобного. Такие программы могут быть реализованы при помощи высокоуровневого процедурного или объектно-ориентированного языка программирования для обмена данными с компьютерной системой. Однако, при необходимости, программа(ы) могут быть реализованы на ассемблере, или машинном языке программирования. В любом случае, язык программирования может быть компилированным или интерпретируемым языком, и это может быть комбинироваться с аппаратными реализациями.
[0060] Несмотря на то, что предмет изобретения был описан специфическим языком структурных особенностей и/или методологических функций, является понятным, что предмет изобретения получил определение в прилагаемых пунктах формулы патента, и нет необходимости ограничивать описанные выше характерные особенности или функции. В значительной степени, описанные выше характерные особенности и функции раскрываются как типовые разновидности реализации формулы изобретения.