СПОСОБЫ И СИСТЕМЫ ДЛЯ СОВМЕСТНОЙ КОНФЕРЕНЦСВЯЗИ И СОВМЕСТНОГО ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ПРИЛОЖЕНИЯ
METHODS AND SYSTEMS FOR COLLABORATIVE APPLICATION SHARING AND CONFERENCING

УРОВЕНЬ ТЕХНИКИ
[001] Широкое распространение удаленного доступа к службам, программным приложениям и данным стало обычным явлением благодаря развитию и доступности широкополосного и беспроводного сетевого доступа. Таким образом, пользователи получают доступ к программным приложениям и данным с помощью постоянно растущего многообразия клиентских устройств (например, мобильных устройств, настольных вычислительных устройств, переносных компьютеров/настольных компьютеров, и т.д.). Данные могут передаваться устройствам из удаленного сервера посредством различных сетей, включая 3G и 4G мобильные сети передачи данных, беспроводные сети, к примеру Wi-Fi и WiMax, проводные сети и т.д. Клиентские устройства имеют возможность подключения к серверам, предоставляющим службы для программных приложений и данные посредством множества сетей с различной пропускной способностью и временем задержки.
[002] В такой среде программные приложения также могут совместно использоваться участниками сеанса взаимодействия. При этом во время взаимодействия участники могут быть ограничены исключительно функциональными характеристиками совместных приложений, таким образом ограничивая сеанс взаимодействия. В частности, участники могут быть ограничены тем, что они не могут использовать совместно с другими участниками сеанса взаимодействия мультимедийные данные, например аудио, видео, захваченные с экрана изображения, библиотеки изображений, и т.д.
КРАТКОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[003] В настоящей заявке описываются системы и способы для предоставления возможности совместной конференцсвязи для удаленных программных приложений. Способ, обеспечивающий возможность совместной конференцсвязи для удаленных программных приложений, может включать предоставление многоуровневой инфраструктуры удаленного доступа, содержащей уровень приложения, уровень сервера и уровень клиента, причем многоуровневая инфраструктура удаленного доступа в первую очередь передает информацию, относящуюся к удаленным программным приложениям, между клиентскими вычислительными устройствами, которые обращаются к удаленному программному приложению вместе с моделью состояния, используемой для отображения удаленного программного приложения в клиентских вычислительных устройствах; предоставление на уровне сервера серверного программного приложения удаленного доступа, причем серверное удаленное программное обеспечение выполнено с возможностью изменения модели состояния; предоставление на уровне клиента или на уровне приложения клиентского программного приложения удаленного доступа; предоставление на уровне клиента клиентского программного приложения для общего использования мультимедийных данных, причем клиентское программное приложение для общего использования мультимедийных данных позволяет совместно использовать данные по меньшей мере одному клиентскому вычислительному устройству вместе с клиентскими вычислительными устройствами; предоставление на уровне сервера программного приложения диспетчера конференцсвязи, причем программное приложение диспетчера конференцсвязи принимает совместно используемые данные; и изменение модели состояния для дальнейшего включения в совместно используемые данные из условия, чтобы совместно используемые данные представлялись по меньшей мере в одном из клиентских вычислительных устройств.
[004] В другом варианте реализации изобретения способ, обеспечивающий возможность совместной конференцсвязи, может включать предоставление многоуровневой инфраструктуры для удаленного доступа, содержащей уровень сервера и уровень клиента, причем многоуровневая инфраструктура для удаленного доступа передает информацию, относящуюся к совместно используемым данным, между клиентскими вычислительными устройствами, которые обращаются к совместно используемым данным с моделью состояния, используемой для отображения совместно используемых данных в клиентских вычислительных устройствах; предоставление на уровне сервера серверного программного приложения удаленного доступа, причем серверное удаленное программное обеспечение выполнено с возможностью изменения модели состояния; предоставление на уровне клиента клиентского программного приложения общего использования данных, причем клиентское программное приложение общего использования данных позволяет по меньшей мере одному из клиентских вычислительных устройств совместно использовать данные вместе с клиентскими вычислительными устройствами; предоставление на уровне сервера программного приложения диспетчера конференцсвязи, причем программное приложение диспетчера конференцсвязи принимает совместно используемые данные; и изменение модели состояния для дальнейшего включения в совместно используемые данные из условия, чтобы совместно используемые данные представлялись по меньшей мере в одном из клиентских вычислительных устройств.
[005] Для специалиста в данной области техники после изучения следующих чертежей и подробного описания будут или могут стать очевидными другие системы, способы, признаки и/или преимущества. Предполагается, что все подобные дополнительные системы, способы, признаки и/или преимущества были включены в настоящее описание и защищены с помощью прилагаемой формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[006] Компоненты на чертежах необязательно выполнены в масштабе относительно друг друга. Одинаковые позиции ссылок обозначают соответствующие части на нескольких видах.
[007] На Фиг. 1 представлена упрощенная блок-схема системы для предоставления посредством компьютерной сети удаленного доступа к программному приложению в удаленном устройстве;
[008] На Фиг. 2 представлена модель состояния, в соответствии с настоящим описанием изобретения;
[009] На Фиг. 3 представлена схема дерева с моделью состояния XML-документа;
[0010] На Фиг. 4 представлены дополнительные аспекты системы, показанной на Фиг. 1;
[0011] На Фиг. 5А представлена упрощенная блок-схема, поясняющая систему для предоставления конференцсвязи с помощью удаленного программного приложения;
[0012] На Фиг. 5В представлена упрощенная блок-схема, иллюстрирующая систему для предоставления конференцсвязи в удаленной среде;
[0013] На Фиг. 6А-В представлены блок-схемы типовых операций, выполняемых системой на Фиг. 5А-В;
[0014] На Фиг. 7 представлен пример пользовательского интерфейса клиентского вычислительного устройства участника просмотра во время общего сеанса конференцсвязи;
[0015] На Фиг. 8 представлен пример пользовательского интерфейса клиентского вычислительного устройства участника совместного использования во время общего сеанса конференцсвязи;
[0016] На Фиг. 9 представлен второй пример пользовательского интерфейса клиентского вычислительного устройства участника просмотра во время общего сеанса конференцсвязи;
[0017] На Фиг. 10 представлен третий пример пользовательского интерфейса клиентского вычислительного устройства участника просмотра во время общего сеанса конференцсвязи;
[0018] На Фиг. 11 представлен пример пользовательского интерфейса, содержащего вид диспетчера конференцсвязи на клиентском вычислительном устройстве участника совместного использования во время общего сеанса конференцсвязи; и
[0019] На Фиг. 12 представлена схема типового вычислительного устройства.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0020] Если не определено иначе, все технические и научные термины, используемые в настоящей заявке, имеют такое же значение, как это обычно понимается специалистом в данной области техники. На практике или при тестировании настоящего описания изобретения могут использоваться способы и материалы, подобные или эквивалентные описанным в настоящей заявке. Хотя варианты реализации будут описаны для приложений удаленного доступа, специалистам в данной области техники станет очевидно, что варианты реализации не ограничиваются этим, но являются применимыми для удаленного доступа к любому типу данных или служб посредством удаленного устройства.
[0021] Представленная на Фиг. 1 система 100 служит для предоставления посредством компьютерной сети удаленного доступа к приложению, данным или другой службе. Система содержит клиентское вычислительное устройство 112А или 112В, например беспроводное мобильное устройство, IPHONE 112А или BLACKBERRY 112В, подключенные посредством компьютерной сети 110, например, Интернет к серверу 102В. Аналогично, клиентские вычислительные устройства могут также включать настольный персональный компьютер/ноутбук 112С или планшетное устройство 112N, подключенные посредством сети передачи данных 110 к серверу 102В. Следует отметить, что подключения к сети передачи данных 110 могут представлять собой любой тип соединения, например Wi-Fi (IEEE 802.11x), WiMax (IEEE 802.16), Ethernet, 3G, 4G, и т.д.
[0022] Сервер 102В подключается, например, посредством компьютерной сети 110 к локальной вычислительной сети (LAN) 109 или может подключаться напрямую к компьютерной сети 110. Например, локальная вычислительная сеть 109 является внутренней компьютерной сетью учреждения такого, как больница, банк, компания, или правительственный департамент. Как правило, такие учреждения до сих пор используют мэйнфрейм 102А и базу данных 108, подключенные к локальной сети 109. Многочисленные программные приложения 107А могут быть сохранены в памяти 106А мэйнфрейма 102А и выполнены с помощью процессора 104А. Аналогично, многочисленные программные приложения 107В могут храниться в памяти 106В сервера 102В и выполняться с помощью процессора 104В. Программные приложения 107А и 107В могут быть "службами", предоставляемыми для удаленного доступа. Мэйнфрейм 102А, сервер 102В и клиентские компьютеры 112А, 112В, 112С или 112N могут реализовываться с помощью аппаратных средств, например вычислительного устройства общего назначения, показанного на Фиг. 12.
[0023] Клиентское программное приложение удаленного доступа 121А, 121В, 121С, 121N может быть предоставлено для отображения данных и/или образов доступным для человеческого понимания способом и определения входных пользовательских данных, в зависимости от принятых пользователем инструкций для взаимодействия с программным приложением, используя, например, графический сенсорный дисплей 114А или графический дисплей 114B/114N и клавиатуру 116В/116С клиентских компьютеров 112А, 112В, 112С, 112N соответственно. Например, клиентское программное приложение удаленного доступа выполняется путем исполнения команд процессором 118А, 118В, 118С, 118N с командами, хранящимися в памяти 120А, 120В, 120С, 120N клиентского компьютера 112А, 112В, 112С, 112N соответственно.
[0024] В качестве альтернативного варианта, программа пользовательского интерфейса выполняется на сервере 102В (как одно из программных приложений 107b), которая затем доступна через URL с помощью универсального клиентского программного приложения, такого как, например, веб-браузер, открытый на компьютере 112А клиента, 112В. Пользовательский интерфейс реализован с использованием, например, языка гипертекстовой разметки HTML 5. В некоторых реализациях сервер 102В может участвовать в совместном сеансе с клиентскими вычислительными устройствами 112А, 112В, 112С… 112N. Например, одно из вышеупомянутых программных приложений 107В может позволить серверу 102В совместно взаимодействовать с программным приложением 107А или другим программным приложением 107В и клиентскими программными приложениями удаленного доступа 121А, 121В, 121С, 121N. Таким образом, сервер 102В и каждое из участвующих в сеансе клиентских вычислительных устройств 112А, 112В, 112С… 112N может предоставлять синхронизированный вид дисплея программного приложения.
[0025] Работа серверного программного приложения сервера удаленного доступа 111В с клиентским программным приложением удаленного доступа (любым из 121А, 121В, 121С, 121N, или одним из программных приложений 107b) выполняется во взаимодействии с моделью состояния 200, как показано на Фиг. 2. Примером серверной программы удаленного доступа является PUREWEB, доступная благодаря Calgary Scientific, Alberta, Canada. Во время выполнения клиентское программное приложение удаленного доступа обновляет модель состояния 200, в соответствии с полученными сопрограммы пользовательского интерфейса данными, введенными пользователем. Программное приложение удаленного доступа может формировать данные управления, в соответствии с обновленной моделью состояния 200, и предоставлять такие же данные серверному программному приложению удаленного доступа 111В, выполняемому на сервере 102В.
[0026] После получения данных программных приложений из программного приложения 107А или 107В сервер приложений удаленного доступа 111В обновляет модель состояния 200, в соответствии с экраном или данными приложения, формирует представление данных, в соответствии с обновленным состоянием модели 200, и предоставляет такие же данные клиентскому программному приложению удаленного доступа 121А, 121В, 121С, 121N на вычислительном устройстве клиента. Модель состояния 200 содержит взаимосвязь логических элементов программного приложения с соответствующими состояниями программного приложения, с логическими элементами, находящимися в иерархическом порядке. Например, логическими элементами могут быть экран, меню, подменю, кнопка и т.д., формирующие пользовательский интерфейс программного приложения. Это позволяет, например, отображать логические элементы в исходном виде с помощью клиентского устройства. Таким образом, меню программного приложения, представленного на мобильном телефоне, будет выглядеть так же, как исходное меню мобильного телефона. Кроме того, меню программного приложения, представленного на настольном компьютере, будет выглядеть так же, как исходное меню операционной системы настольного компьютера.
[0027] Модель состояния 200 определяется таким образом, что каждый из логических элементов связан с соответствующим состоянием программного приложения 107А или 107В. Модель состояния 200 может определяться из условия, что логические элементы связаны с взаимодействиями пользователя. Например, логические элементы программного приложения определены таким образом, что логические элементы содержат элементы перехода от каждого переходного элемента, связанного с изменениями модели состояния 200, к управляющим данным и данным представления программного приложения, связанного с ним.
[0028] В некоторых реализациях изобретения два или более клиентских вычислительных устройства 112А, 112В, 112С… 112N и/или сервер 102В могут совместно взаимодействовать с программным приложением 107А или 107В. Таким образом, обмениваясь информацией о состоянии между каждым из клиентских вычислительных устройств 112А, 112В, 112С… 112N, и/или сервером 102В, и/или мэйнфреймом 102А, участвующим в совместном сеансе, каждое из участвующих в сеансе клиентских вычислительных устройств 112А, 112В, 112С… 112N может представлять синхронизированный вид дисплея программного приложения 107А или 107В.
[0029] В соответствии с некоторыми вариантами реализации изобретения, система 100 может предусматривать несвязные расширения программного приложения. Такие расширения предоставляются в виде части серверного программного приложения удаленного доступа 111В (например, в виде плагина), клиентского программного приложения удаленного доступа 121А, 121В, 121С, 121N (например, в виде части клиентского пакета средств разработки программного обеспечения (SDK)), одного из приложений 107В (например, как часть серверного SDK), или их комбинаций для реализации возможностей и функций, которые иначе не обеспечивались бы программными приложениями 107А или 107В. Более подробно они описываются ниже в описании к Фиг. 4. Эти особенности и функциональные возможности могут обеспечиваться без необходимости изменения программных приложений 107А или 107В, поскольку они интегрированы в программные приложения удаленного доступа. Таким образом, несвязное расширение программного приложения является независимым от самого приложения, т.е. расширение приложения не зависит от приложения, отображаемого серверным приложением удаленного доступа 111В и клиентским приложением удаленного доступа 121А, 121В, 121С, 121N. Кроме того, расширения программного приложения могут быть предоставлены элементами управления, представленными серверным программным приложением удаленного доступа 111В или клиентским программным приложением удаленного доступа 121А, 121В, 121С, 121N, и всегда могут быть доступными.
[0030] Например, "интерактивный цифровой поверхностный слой" может быть предоставлен в качестве расширения программного приложения для того, чтобы позволить участникам общего сеанса делать комментарии поверх программного приложения, работающего во время сеанса. Функции интерактивного цифрового поверхностного слоя похожи на инструмент для рисования, позволяющий пользователю возможность рисования линий, стрелок, символов, каракулей и т.д. поверх программного приложения для обеспечения взаимодействия как с самим программным приложением, так и с интерактивным цифровым поверхностным слоем. Как будет описано ниже со ссылкой на Фиг. 5А и 5В, интерактивный цифровой поверхностный слой доступен в качестве управляющего устройства в среде, показанной на Фиг. 1.
[0031] На Фиг. 3 представлено дерево с моделью состояния XML-документа, описывающее несвязное расширение программного приложения, такого как интерактивный цифровой поверхностный слой, который может быть реализован вместе с аспектами настоящего описания изобретения. Реализация интерактивного цифрового поверхностного слоя (или "ацетат слоя") описывается в предварительной заявке на патент США №61/541,540 и предварительной заявке на патент США №13/632,245, которые включены в настоящую заявку посредством ссылки во всей их полноте. В XML дереве содержится узел взаимодействия, определяющий, какую информацию включает один или несколько сеансов. Сеансы связаны с расширениями программных приложений, таких как интерактивный цифровой поверхностный слой. Участники сеанса идентифицируются с помощью тега Информация о Пользователе и могут быть, например, Глен и Жаки. Каждому участнику назначается цвет по умолчанию (Цвет По умолчанию) для представления пользовательских комментариев в интерактивном цифровом поверхностном слое (например, синий для Глен и зеленый для Жаки). Для участников общего сеанса в качестве цвета по умолчанию может быть выбран любой отображаемый цвет. Определение приоритета цветов может определяться таким образом, что первому пользователю присваивается синий, второму пользователю присваивается зеленый, третьему пользователю присваивается оранжевый и т.д.
[0032] С помощью узла взаимодействия также определяются одна или более проекций. В примере, представленном на Фиг. 3, Глен и Жаки могут совместно сотрудничать с помощью программного приложения медицинской томографии. Таким образом, может быть определено две проекции: осевая и фронтальная проекции. Сеансы связаны с каждой из проекций, где сеансы включают пользователей для взаимодействия. Для осевой проекции сеанс Глена имеет связанную с ним позицию курсора (CP) и некоторые пометки, например каракули, стрелку и окружность. На осевой проекции Жаки имеет связанную с курсором позицию, но так как она пока не внесла никаких пометок к интерактивному цифровому поверхностному слою, нет дополнительной информации, связанной с осевой проекцией сеанса Жаки. При фронтальном сеансе каждый пользователь имеет только связанное с ним положение курсора.
[0033] При помощи клиентского программного приложения удаленного доступа выше отображается информация, которая может быть отображена клиентским вычислительным устройством, соответственно связанным с Глен и Жаки. Например, Глен может просматривать программные приложения на клиентском вычислительном устройстве, например ноутбуке, имеющем дисплей среднего размера. Таким образом, Глен может просматривать одновременно как осевую, так и фронтальную проекции. В свою очередь, Жаки может просматривать программное приложение в меньшем вычислительном устройстве, например мобильном беспроводном устройстве. Таким образом, может быть представлена только осевая проекция в связи с тем, что область отображения такого устройства является более ограниченной.
[0034] Ниже приводится пример разделения модели состояния 200 в соответствии с деревом на Фиг. 3. Модель состояния 200 может быть представлена, например, документом расширяемого языка разметки (XML). Могут быть использованы другие представления модели состояния 200. Информация, относящаяся к программному приложению и интерактивному цифровому поверхностному слою, является информацией, передаваемой в модели состояния 200. Поскольку интерактивный цифровой поверхностный слой не связан с программным приложением, связанная с интерактивным цифровым поверхностным слоем информация не является частью состояния программного приложения (то есть он является отделенным от программного приложения). Скорее, информация об интерактивном цифровом поверхностном слое отдельно сохраняется в модели состояния 200.
[0035] Информация о программном приложении (107А или 107В) сохраняется в узле Состояние Приложения в первой части модели состояния XML. Различные состояния программного приложения, связанные с осевой и фронтальной проекциями, определяются так же, как и связанные триггеры. Например, осевая проекция "поле" определяется для получения имени в качестве исходных данных пользователя и их отображения. Несвязные состояния взаимодействия и состояния расширения программного приложения (например, интерактивного цифрового поверхностного слоя) поддерживаются во второй части документа XML.
[0036] Таким образом, модель состояния 200 содержит сеансовую информацию о самом программном приложении, информацию о расширении программного приложения (например, интерактивном цифровом поверхностном слое), информацию о проекциях и о том, как связать комментарии с конкретными проекциями (например, каракулями, стрелкой, кругом, привязанными к осевой проекции).
[0037] На Фиг. 4 более подробно представлены аспекты системы 100, показанной на Фиг. 1. На Фиг. 4 представлена система 100, имеющая многоуровневый стек программного обеспечения. Клиентское программное приложение удаленного доступа 121А, 121В, 121С, 121N может находиться в верхней части пакета средств разработки программного обеспечения (SDK) 704 на клиентском уровне. Уровень клиента обменивается данными с серверным программным приложением удаленного доступа 111В на уровне сервера. Уровень сервера обменивается данными с диспетчером состояния 708, находясь в верхней части программных приложений 107А/107В и сервера SDK 712 на уровне приложения. Как отмечалось выше, расширения программного приложения могут быть реализованы на любом из уровней, т.е. как плагин 706 на уровне сервера, как клиентское расширение программного приложения 702 на уровне клиента, как расширение программного приложения 710 на уровне приложения, или их комбинацией. Модель состояния 200 передается между уровнями и может быть изменена в любом из уровней с помощью расширений программных приложений 702 и 710, а также плагина 706.
[0038] В еще одном примере на уровне приложения расширение программного приложения 710 может быть отдельной исполняемой программой, включающей в себя новую бизнес-логику для расширения программных приложений 107А/107В. Расширение программного приложения 710 может использовать модель состояния 200 и формировать свой собственный документ 714 (т.е. модель состояния расширения приложения 710), который может содержать: (1) информацию из модели состояния 200 и информацию, связанную с расширением программного приложения 710, (2) только информацию, связанную с расширением программного приложения 710, или (3) сочетание информации из модели состояния и информации, связанной с расширением программного приложения 714. Модель состояния 714 может быть передана серверному программному приложению удаленного доступа 111В, затем серверное программное приложение удаленного доступа 111В может сформировать обновленную модель состояния 200 для того, чтобы включить информацию в модель состояния 714. В качестве варианта или дополнительно, клиентское программное приложение удаленного доступа 121А, 121В, 121С, 121N может получить как модель состояния 200, так и модель состояния 714, причем клиентское приложение удаленного доступа может сформировать обновленную модель состояния 200, чтобы включить эту информацию в модель состояния 714.
[0039] На Фиг. 5А представлена упрощенная блок-схема, поясняющая систему для предоставления конференцсвязи с использованием удаленного программного приложения. Как обсуждалось выше, участники общего сеанса могут быть ограничены исключительно в отношении совместного использования удаленного программного приложения, то есть участники не могут взаимодействовать с различными мультимедийными данными, хранящимися на клиентских вычислительных устройствах 112А, 112В, 112С или 112N других участников, или получать к ним доступ. При этом, согласно реализации изобретения, показанной на Фиг. 5А, участник может предоставлять общий доступ к различным мультимедийным данным, таким как, например, видео, аудио, захваченные с экрана изображения, текстовые сообщения, библиотеки изображений, и т.д., другим участникам общего сеанса.
[0040] Система, представленная на Фиг. 5А, содержит клиентские вычислительные устройства 112А, 112В, 112С и/или 112N, сервер приложений (т.е. сервер 102В или мэйнфрейм 102А) и серверное приложение удаленного доступа 111В, выполняемое на сервере 102В, как обсуждалось в отношении Фиг. 1, 2 и 4. Как обсуждалось выше, серверное приложение удаленного доступа 111В обеспечивает доступ к одному или более программным приложениям 107А/107В, отображаемым клиентскими приложениями удаленного доступа 121А, 121В, 121С или 121N. Работа серверного приложения удаленного доступа 111В с клиентскими программными приложениями удаленного доступа 121А, 121В, 121С или 121N или одним из программных приложений 107А/107В выполняется во взаимодействии с моделью состояния 200. Согласно вышеуказанным реализациям, каждое из клиентских вычислительных устройств 112А, 112В, 112С или 112N, участвующих в общем сеансе, может представлять собой синхронизированный вид программных приложений 107А/107В путем передачи модели состояния 200 между каждым из клиентских вычислительных устройств 112А, 112В, 112С или 112N, и/или сервером 102В, и/или мэйнфреймом 102А.
[0041] С целью предоставления возможности конференцсвязи, то есть для общего использования различных мультимедийных данных вместе с другими участниками общего сеанса, показанная на Фиг. 5А схема также содержит сервер конференцсвязи, имеющий программное приложение - заглушку конференцсвязи 732 и программное приложение диспетчера конференцсвязи 742. В некоторых реализациях программное приложение - заглушка конференцсвязи 732 и программное приложение диспетчера конференцсвязи 742, может выполняться на сервере 102В. Компонент общего доступа среди функциональных возможностей конференцсвязи может быть опциональным и может быть инициирован участником без установки путем загрузки клиентского программного приложения обмена мультимедийными данными 722 при помощи клиентского вычислительного устройства 112А, 112В, 112С или 112N. При этом, если клиентское программное приложение удаленного доступа 121А, 121В, 121С или 121N работает в ограниченной программной среде, например веб-браузере, который не имеет доступа к системным ресурсам для сбора мультимедийных данных общего пользования или не позволяет совместно использовать мультимедийные данные, то участник может не закачивать клиентское программное приложение обмена мультимедийными данными 722, но при этом у него не будет возможности предоставлять различные мультимедийные данные для использования другими участниками в совместно используемой системе. Вместо этого участник будет ограничен исключительно в просмотре удаленных программных приложений 107А/107В и/или различных мультимедийных данных, используемых другими участниками совместного сеанса. В некоторых реализациях клиентское программное приложение для общего использования мультимедийных данных 722 может входить в состав в клиентского приложения удаленного доступа 121А, 121В, 121С или 121N.
[0042] Система, представленная на Фиг. 5А, позволяет участнику, пользующемуся возможностью конференцсвязи-связи, предоставлять для использования мультимедийные данные, такие как видео, аудио, данные, захваченные с экрана, текстовые сообщения, библиотеки изображений, и т.д. другим участникам совместного сеанса. Сервер конференцсвязи может принимать общие мультимедийные данные либо непосредственно от клиентского приложения для совместного использования мультимедийных данных 722 или косвенно от клиентского приложения удаленного доступа 121А, 121В, 121С или 121 посредством приложения-заглушки конференцсвязи 732. Кроме того, множество различных участников может предоставить общие мультимедийные данные, одновременно отображаемые на других клиентских вычислительных устройствах 112А, 112В, 112С или 112N.
[0043] В одной из реализаций приложением-заглушкой конференцсвязи 732 является серверное приложение (например, плагин 706), позволяющее организовать обмен данными с серверным приложением удаленного доступа 111В. При этом приложение - заглушка конференцсвязи 732, может не содержать совместных функций, таких как, например, компоненты, позволяющие клиентским вычислительным устройствам 112А, 112В, 112С или 112N совместно взаимодействовать с программным приложением 107А/107В. Таким образом, приложение - заглушка конференцсвязи 732 может не использоваться совместно участниками сеанса (посредством модели состояния 200). Соответственно, в настоящей реализации изобретения, есть одно приложение - заглушка конференцсвязи 732 для каждого клиентского вычислительного устройства 112А, 112В, 112С или 112N, подключенного к серверу конференцсвязи. В другом варианте реализации приложение диспетчера конференцсвязи 742 является серверным приложением, предоставляющим возможность обмена данными с серверным приложением удаленного доступа 111В, и функциональные возможности приложения - заглушки конференцсвязи 732 в полной мере реализуются приложением диспетчера конференцсвязи 742. Кроме того, в еще одном варианте реализации, приложение диспетчера конференцсвязи 742 представляет собой серверное приложение, позволяющее осуществлять связь с серверным приложением удаленного доступа 111В, причем приложение-заглушка конференцсвязи 732 становится гибридным клиент/серверным приложением, причем приложение - заглушка конференцсвязи 732 представляет собой сервер по отношению к вычислительным клиентским устройствам 112А, 112В, 112С или 112N и клиент - по отношению к серверу конференцсвязи.
[0044] Как обсуждалось выше, во время общего сеанса клиентское приложение удаленного доступа 121А, 121В, 121С или 121N выполняет операции вместе с серверным приложением удаленного доступа 111В, во взаимосвязи с моделью состояния 200 для взаимодействия с программным приложением 107А/107В. Аналогично, во время сеанса конференцсвязи клиентское приложение удаленного доступа 121А, 121В, 121С или 121N выполняет операции совместно с сервером приложений удаленного доступа 111В, во взаимосвязи с моделью состояния 200 для взаимодействия с приложением диспетчера конференцсвязи 742, посредством приложения - заглушки конференцсвязи 732. Например, приложение диспетчера конференцсвязи 742 работает в качестве мультиплексора, делая общеиспользуемые мультимедийные данные, полученные от одного клиентского вычислительного устройства 112А, 112В, 112С или 112N (прямо или косвенно, как обсуждалось выше), доступными для приложения - заглушки конференцсвязи 732 каждого из остальных клиентских вычислительных устройств 112А, 112В, 112С или 112N. В частности, приложение - заглушка конференцсвязи 732 и клиентское приложение удаленного доступа 121А, 121В, 121С или 121N координируют то, как могут быть обработаны, игнорированы или изменены и т.д. атрибуты различных медиапотоков перед их передачей от приложения - заглушки конференцсвязи 732 клиентскому приложению удаленного доступа 121А, 121В, 121С или 121N. Например, приложение - заглушка конференцсвязи 732 может микшировать два или более доступных аудиопотоков в один аудиопоток, тем самым снижая требования к пропускной способности.
[0045] На Фиг. 5В представлена упрощенная блок-схема, поясняющая систему для предоставления конференцсвязи в удаленной среде. Рассмотренные общие особенности Фиг. 5А и 5В помечены одинаковыми номерами ссылок. Как уже обсуждалось выше со ссылкой на Фиг. 5А, конференцсвязь осуществляется с помощью удаленных программных приложений 107А/107В. При этом на Фиг.5В конференцсвязь осуществляется в удаленной среде без взаимодействия с программным приложением 107А/107В. В этой реализации клиентское приложение удаленного доступа 121А, 121В, 121С или 121N выполняет операции совместно с серверным приложением удаленного доступа 111В, во взаимосвязи с моделью состояния 200, совместно с приложением диспетчера конференцсвязи 742, с помощью приложения - заглушки конференцсвязи 732 во время сеанса конференцсвязи, вышеописанным способом.
[0046] На Фиг. 6А представлена блок-схема 800 типовых операций, выполняемых системой, показанной на Фиг. 5А. На этапе 802, программное приложение 107А/107В является удаленно доступным. Как обсуждалось выше, например, с помощью серверного приложения удаленного доступа 111В предоставляется доступ к одному или более программным приложениям 107А/107В, отображаемым с помощью клиентского программного приложения удаленного доступа 121А, 121В, 121С или 121N. В 803, с помощью клиентского вычислительного устройство 112А, 112В, 112С или 112N определяется, имеет ли это устройство доступ к системным ресурсам для общего использования мультимедийных данных. Если НЕТ, процесс переходит к этапу 804 для получения возможности конференцсвязи, который описан ниже. Если ДА, то модель состояния 200 обновляется, и затем процесс переходит к обсуждаемому ниже этапу 806.
[0047] В блоке 804, с целью получения возможности конференцсвязи, участник может загрузить клиентское программное приложение обмена мультимедийными данными 722, используя клиентское вычислительное устройство 112А, 112В, 112С или 112N. Клиентское программное приложение обмена мультимедийными данными 722 позволяет участнику общего сеанса использовать мультимедийные данные совместно с другими участниками.
[0048] В блоке 806, участник предоставляет совместно используемые мультимедийные данные серверу конференцсвязи непосредственно с помощью клиентского программного приложения обмена мультимедийными данными 722 или косвенно, используя клиентское программное приложение удаленного доступа 121А, 121В, 121С или 121N посредством приложения - заглушки конференцсвязи 732. В одном из вариантов реализации, множество различных участников может предоставить общеиспользуемые мультимедийные данные, которые могут быть одновременно отображаемыми клиентскими вычислительными устройствами 112А, 112В, 112С или 112N. В блоке 808, с помощью клиентского программного приложения удаленного доступа 121А, 121В, 121С или 121N выполняются операции во взаимодействии с серверным приложением удаленного доступа 111В, во взаимосвязи с моделью состояния 200, совместно с приложением диспетчера конференцсвязи 742, посредством приложения-заглушки конференцсвязи 732. Например, при получении приложением диспетчера конференцсвязи 742 общеиспользуемых мультимедийных данных от одного из клиентских вычислительных устройств 112А, 112В, 112С или 112N, приложение диспетчера конференцсвязи 742 делает возможным общее использование мультимедийных данных каждым приложением - заглушкой конференцсвязи 732 другого клиентского вычислительного устройства 112А, 112В, 112С или 112N. Затем с помощью серверного приложения удаленного доступа 111В обновляется модель состояния 200.
[0049] В блоке 810, серверным приложением удаленного доступа 111В генерируются данные представления, в соответствии с обновленной моделью состояния 200, и эти данные предоставляются непосредственно клиентскому программному приложению удаленного доступа 121А, 121В, 121С, 121N клиентского вычислительного устройства. В блоке 812, клиентским программным приложением удаленного доступа 121А, 121В, 121С, 121N обновляется дисплей клиентского вычислительного устройства 112А, 112В, 112С или 112N.
[0050] На Фиг. 6В представлена блок-схема 800 типовых операций, выполняемых системой, показанной на Фиг. 5В. Общие особенности Фиг. 6А и 6В помечены одинаковыми номерами ссылок. Типовые операции на Фиг. 6В отличаются от типовых операций на Фиг. 6А тем, что для начала конференцсвязи не нужно инициализировать программное приложение 107А/107В.
[0051] На Фиг. 7 представлен пример интерфейса пользователя 900 клиентского вычислительного устройства, просматриваемого участником общего сеанса конференцсвязи. Например, пользовательский интерфейс 900 может включать окно программного приложения 902 (т.е. 107А/107В), окно совместно используемого видеопотока 904 и окно совместно используемых мультимедийных данных 908. К тому же, окно совместно используемого видеопотока 904 может включать в себя множество совместно используемых видеопотоков. Кроме того, пользовательский интерфейс 900 может включать в себя множество окон общеиспользуемых мультимедийных данных 908, и общеиспользуемые мультимедийные данные могут происходить от одних и тех же и/или различных источников. Кроме того, пользовательский интерфейс 900 может содержать плавающую панель инструментов 906, предоставляющую участнику возможность управления, такого как, например, активация интерактивного цифрового поверхностного слоя, захват изображения рабочего стола участника (т.е. которое можно затем использовать вместе с другими участниками общего сеанса), и т.д. Интерактивный цифровой поверхностный слой выполнен с возможностью принимать вводимые пользователем данные для совместного отображения примечаний, вводимых пользователями во время сеанса. Примечания могут быть сделаны в любом участке пользовательского интерфейса 900, то есть окне программного приложения 902 (т.е. 107А/107В), окне совместно используемого потокового видео 904, окне общеиспользуемых мультимедийных данных 908 и т.д. Плавающая панель инструментов 906 может также предоставлять участнику вариант общего использования мультимедийных данных, таких как, например, аудио, видео, захваченные с экрана компьютера изображения, текстовые сообщения, и т.д. Пользовательский интерфейс 900 с целью управления отображаемыми окнами может также включать в себя, например, кнопку перетаскивания окон или кнопку полноэкранного просмотра 910. Пользователь также может менять местами различные окна, с помощью щелчка мыши перетаскивая окна на пользовательском интерфейсе 900.
[0052] На Фиг. 8 представлен пример пользовательского интерфейса 1000 клиентского вычислительного устройства участника общего использования данных во время общего сеанса конференцсвязи. Пользовательский интерфейс 1000 включает окно рабочего стола, которым участник делится с другими участниками общего сеанса, а также плавающую панель инструментов 1006.
[0053] На Фиг. 9 представлен второй пример интерфейса пользователя 1100 клиентского вычислительного устройства участника просмотра во время общего сеанса конференцсвязи. Аналогично Фиг. 7, пользовательский интерфейс 1100 включает в себя окно программного приложения 1102 (т.е. 107А/107В), окно совместно используемого потокового видео 1104 и окно общеиспользуемых мультимедийных данных 1108, а также плавающую панель инструментов 1106. Кроме того, пользовательский интерфейс 1100 включает в себя окно чата 1114, позволяющее участникам общего сеанса принимать участие в сеансе чата в реальном времени.
[0054] На Фиг. 10 представлен третий пример пользовательского интерфейса 1200 клиентского вычислительного устройства участника просмотра во время общего сеанса конференцсвязи. Аналогично Фиг. 9 и 11, пользовательский интерфейс 1200 включает в себя окно программного приложения 1202 (т.е. 107А/107В), окно совместно используемого видеопотока 1204 и окно совместно используемых мультимедийных данных 1208, а также плавающую панель инструментов 1206. Панель инструментов 1206 может также включать в себя кнопки, например, для захвата изображения экрана 1220 и/или активации интерактивного цифрового поверхностного слоя 1222. Кроме того, пользовательский интерфейс 1200 содержит вид интерактивного цифрового поверхностного слоя на белом фоне 1216. Примечания могут быть сделаны на любом участке пользовательского интерфейса 1200, т.е. на окне программного приложения 1202 (т.е. 107А/107В), окне совместно используемого потокового видео 1204, окне общеиспользуемых мультимедийных данных 1208, окне интерактивного цифрового поверхностного слоя на белом фоне 1216 и т.д. Белый фон позволяет участникам беспрепятственно делать комментарии на отображаемых окнах. Дополнительно или как вариант, белый фон 1216 может быть видом приложения доски, позволяя участникам рисовать/делать на доске пометки. Рисунки/заметки могут быть захвачены и сохранены для дальнейшего использования.
[0055] На Фиг. 11 представлен пример пользовательского интерфейса 1300, содержащего окно диспетчера конференцсвязи 1316 клиентского вычислительного устройства участника совместного использования данных во время общего сеанса конференцсвязи. Например, окно диспетчера конференцсвязи 1316 отображает список участников общего сеанса, цвет примечания каждого участника, тип мультимедийных данных, общеиспользуемых каждым участником (т.е. аудио, видео, рабочий стол, например) и т.д. Пользовательский интерфейс 1300 может также содержать окна всех предыдущих захваченных изображений рабочего стола 1318 общего сеанса, а также кнопки для сохранения изображений, захваченных с рабочего стола 1320. Кроме того, одним из вариантов может быть автоматическое прекращение совместного использования рабочего стола после сохранения захваченных изображений.
[0056] Пользовательские интерфейсы, согласно настоящей заявке, могут быть представлены на любом типе вычислительного устройства, участвующем в совместном сеансе конференцсвязи. Таким образом, с учетом различных областей отображения устройств, принимающих участие в общем сеансе конференцсвязи, реализациями данного изобретения может быть предусмотрен рефакторинг дисплея. Таким образом, каждым типом устройства, принимающим участие в совместном сеансе конференцсвязи, представляется пользовательский интерфейс, при этом имеющий разрешение, предназначенное для данного устройства, основанное на содержащейся в модели состояния 200 информации. Например, рассмотрим пользовательский интерфейс на Фиг. 7, где дисплей связан с настольным компьютером, на котором может быть отображен весь пользовательский интерфейс 900. Однако если дисплей связан с портативным мобильным устройством, то может отображаться подмножество пользовательских интерфейсов 900, например окно программного приложения 902. Другие окна могут быть предоставлены на мобильном телефоне при помощи органов управления, предоставленных на дисплее. В зависимости от видов пользовательского интерфейса и устройства, на котором отображается пользовательский интерфейс, возможны другие схемы рефакторинга.
[0057] Во время общего сеанса пользователь может пожелать указать область пользовательского интерфейса, без взаимодействия с базовым приложением 107А/107В. Например, пользователь может делать презентацию слайдов и, возможно, пожелает "указать" элемент на слайде, отображаемом пользовательским интерфейсе. Для указания элемента на слайде другим пользователям общего сеанса может быть использован интерактивный цифровой поверхностный слой.
[0058] С целью разместить указание поверх всех остальных данных отправка данных позиции курсора мыши может быть выполнена отдельно от отправки входных событий мыши приложению 107А/107В, притом, что данные положения и события могут быть активированы независимо друг от друга. Таким образом, в случае, когда пользователь планшетного устройства 112N не желает взаимодействия с программным приложением 107А/107В, информация о положении курсора может быть отправлена непосредственно инструментом позиционирования курсора, при этом исключаются входные события, которые могут служить причиной для такого взаимодействия. Описанное выше может быть достигнуто путем разделения одного способа обновления позиции курсора интерактивного цифрового поверхностного слоя на два способа, один из которых выполняет обновления позиции курсора, а другой выполняет обновление очереди входных событий. Дополнительно или в качестве варианта, при работе в таком режиме могут меняться характеристики курсора мыши. Например, когда курсор мыши используется для целей индикации, курсор может стать утолщенным, поменять цвет, форму, мигать и т.д., для указания другим пользователям, что курсор в настоящее время используется в качестве индикатора.
[0059] Хотя вышеописанное может быть реализовано для всех типов клиентских компьютеров, в частности применяется в случае, когда пользователи мобильных устройств, имеющих сенсорный интерфейс (например, планшетных устройств 112N), пожелают указать другим пользователям на то, что он или она просматривает на дисплее в настоящее время. Как правило, прикосновение к планшетному устройству представляет собой взаимодействие с программным приложением 107А/107В. В соответствии с вышеизложенным, отделяя данные позиции курсора мыши (т.е. точки касания) от отправки входных событий мыши (т.е. движения во время касания), позволяет пользователям планшетных устройств 112N сделать такое указание таким же, как у клиентских компьютеров, имеющих указательное устройство.
[0060] В другом аспекте, который может комбинироваться с описанным выше или реализовываться отдельно, примечания могут создаваться в интерактивном цифровом поверхностном слое без взаимодействия с базовым программным приложением 107А/107В, при этом для взаимодействия базовых программных приложений 107А/107В необязательно создавать примечания в интерактивном цифровом поверхностном слое. Поэтому интерактивный цифровой поверхностный слой управления 1222 может быть выполнен с возможностью отключать взаимодействие с основным программным приложением 107А/107В.
[0061] Таким образом, как описано выше, настоящее изобретение предусматривает возможность конференцсвязи с помощью удаленного программного приложения для совместного использования. В более общем смысле настоящее изобретение предоставляет системы и способы, позволяющие участникам общего сеанса конференцсвязи совместно с другими участниками использовать мультимедийные данные.
[0062] На Фиг. 12 представлен пример вычислительной среды, в которой могут быть реализованы типовые варианты и аспекты. Представленная среда вычислительной системы является только одним из примеров подходящей вычислительной среды и не предназначена для введения каких-либо ограничений на объем использования или функциональные возможности.
[0063] Может быть использовано множество других вычислительных сред или конфигураций как общего, так и специального назначения. Примеры хорошо известных вычислительных систем, сред и/или конфигураций, которые могут быть пригодными для использования, содержат, но не ограничиваются ими, персональные компьютеры, серверы, карманные или портативные устройства, многопроцессорные системы, системы на основе микропроцессоров, сетевые персональные компьютеры (PC), мини-компьютеры, мэйнфреймы, встроенные системы, распределенные вычислительные среды, содержащие любую из вышеупомянутых систем или устройств, и тому подобное.
[0064] Могут быть использованы выполняемые компьютером команды, такие как программные модули. В общем случае программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., выполняющие конкретные задачи или реализующие определенные абстрактные типы данных. Распределенные вычислительные среды могут быть использованы в случае, если задачи выполняются с помощью удаленных устройств обработки, связанных с помощью сети передачи данных или другой среды передачи данных. В распределенной вычислительной среде программные модули и другие данные могут храниться как на локальных, так и на удаленных компьютерных носителях данных, включая запоминающие устройства.
[0065] Ссылаясь на Фиг. 12, типовая система для реализации аспектов, описанных в настоящей заявке, включает в себя вычислительное устройство, например вычислительное устройство 600. В своей наиболее общей конфигурации вычислительное устройство 600, как правило, включает в себя по меньшей мере один процессор 602 и память 604. В зависимости от требуемой конфигурации и типа вычислительного устройства память 604 может быть энергозависимой (например, оперативным запоминающим устройством (RAM)), энергонезависимой (например, постоянным запоминающим устройством (ROM), флэш-памятью и т.д.) или комбинацией этих двух. Эта наиболее общая конфигурация показана на Фиг. 12 пунктирной линией 606.
[0066] Вычислительное устройство 600 может иметь дополнительные особенности/функциональные характеристики. Например, вычислительное устройство 600 может содержать дополнительное запоминающее устройство (съемное и/или несъемное), включая, но не ограничиваясь этим, магнитные или оптические диски или ленту. Такое дополнительное запоминающее устройство показано на Фиг. 12 как съемное запоминающее устройство 608 и несъемное запоминающее устройство 610.
[0067] Вычислительное устройство 600 обычно включает в себя разнообразные машиночитаемые носители. Машиночитаемыми носителями могут быть любые доступные носители, к которым может получить доступ устройство 600, и включают в себя как энергозависимые, так и энергонезависимые носители, съемные и несъемные носители.
[0068] Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные с помощью любого способа или технологии хранения информации, таких как машиночитаемые команды, структуры данных, программные модули или другие данные. Память 604, съемное запоминающее устройство 608 и несъемное запоминающее устройство 610 являются типовыми компьютерными носителями данных. Компьютерные носители данных содержат, но не ограничиваются ими, ОЗУ, ПЗУ, электрически стираемое перепрограммируемое ПЗУ (EEPROM), флэш-память или устройство памяти другой технологии, CD-ROM, цифровые универсальные диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для хранения необходимой информации и к которому может обращаться вычислительное устройство 600. Любые подобные компьютерные носители данных могут быть частью вычислительного устройства 600.
[0069] Вычислительное устройство 600 может содержать соединение(я) для связи 612, позволяющее устройству обмениваться данными с другими устройствами. Вычислительное устройство 600 может также иметь устройство(а) ввода 614, например клавиатуру, мышь, перо, устройство речевого ввода, устройство сенсорного ввода и т.д. Могут быть также включены устройство(а) вывода 616, например дисплей, громкоговорители, принтер и т.д. Все эти устройства хорошо известны в данной области техники и нет необходимости в их подробном обсуждении.
[0070] Следует понимать, что различные описанные здесь способы могут быть реализованы совместно с аппаратными средствами или программным обеспечением или, при необходимости, с помощью их комбинации. Таким образом, способы и устройства, описанные настоящим объектом изобретения или некоторыми аспектами или его частями, могут принимать форму программного кода (т.е. команд), воплощенного на материальных носителях, таких как гибкие диски, CD-ROM, жесткие диски или любой другой машиночитаемый носитель хранения информации, в котором в случае загрузки программного кода и выполнения машиной, например компьютером, машина становится устройством для практической реализации данного описанного объекта изобретения. В случае выполнения программного кода на программируемых компьютерах вычислительное устройство обычно включает в себя процессор, носитель информации, считываемый процессором (включая энергозависимую и энергонезависимую память и/или запоминающие элементы), по меньшей мере одно устройство ввода и по меньшей мере одно устройство вывода. С помощью одной или более программ могут реализоваться или использоваться способы, описанные в связи с описанным настоящим объектом изобретения, например путем использования программного интерфейса (API), повторно используемых элементов управления и т.п. Такие программы для связи с компьютерной системой могут быть реализованы на процедурном языке высокого уровня или объектно-ориентированном языке программирования. При этом программа(ы), если это необходимо, могут быть реализованы на языке ассемблера или машинном языке. В любом случае язык программирования может быть транслируемым или интерпретируемым языком и может быть объединен с аппаратными реализациями.
[0071] Хотя объект изобретения описан на языке, характерном для структурных признаков и/или методологических действий, должно быть ясно, что объект изобретения определен в прилагаемой формуле изобретения, при этом он необязательно ограничен конкретными признаками или описанными выше действиями. Напротив, конкретные признаки и действия, описанные выше, раскрыты как типовые формы реализации формулы изобретения.