Уровень техники
Удаленный сеанс, который может включать в себя сеансы совместной работы, может обеспечить взаимодействие с дистанционной связью между локальным компьютером и удаленным компьютером. Совместная работа может предполагать восстановление внешнего вида части или всего графического интерфейса пользователя локального компьютера на удаленном компьютере. Графический интерфейс пользователя может быть восстановлен на удаленном компьютере с помощью одной или более методик, таких как дистанционирование. Сеансы совместной работы, которые в конечном итоге восстанавливаются на удаленном компьютере, могут управляться одним или более параметрами, которые могут быть ассоциированы с частью локального компьютера, восстанавливаемой на удаленном компьютере.
Стандартным примером сеанса совместной работы могут быть операции, относящиеся к медиаоперациям для воспроизведения мультимедийных файлов. Методики дистанционирования таких сеансов могут подразумевать передачу медиаданных от локального компьютера к удаленному компьютеру. Медиаданные могут включать в себя данные, ассоциированные с мультимедийными файлами, которые предназначены для воспроизведения, обработку данных, воспроизведение данных и т.д. Мультимедийные файлы на локальном компьютере могут удаленно воспроизводиться на удаленном компьютере посредством дистанционирования медиаданных на удаленный компьютер. Медиаданные, вместо того чтобы воспроизводиться на локальном компьютере, воспроизводятся на удаленном компьютере.
Сущность изобретения
Эта сущность предоставляется для того, чтобы ввести общие принципы управления мультимедийными операциями в сеансах удаленной связи. Эти принципы далее описываются ниже в подробном описании. Эта сущность не предназначена для установления существенных признаков заявленного предмета изобретения, не предназначена она и для использования в определении объема заявленного предмета изобретения.
Краткое описание чертежей
Подробное описание описывается со ссылкой на прилагаемые чертежи. На чертежах крайняя левая цифра(ы) позиции обозначает чертеж, на котором позиция впервые появляется. Одни и те же числа используются на всех чертежах для ссылки на подобные признаки и компоненты.
Фиг.1 - это блок-схема, иллюстрирующая типовую сеть для управления мультимедийными операциями в сеансе совместной работы.
Фиг.2 - это схема последовательности операций, иллюстрирующая управление мультимедийными операциями в сеансе совместной работы в сети с использованием компьютеров.
Фиг.3 - это типовая иллюстрация таблиц отображения для управления мультимедийными операциями в сеансе совместной работы.
Фиг.4 - это блок-схема, иллюстрирующая один или более типичных компонентов медиаплатформы.
Фиг.5 - это блок-схема последовательности операций, иллюстрирующая типовой процесс управления мультимедийными операциями в сеансе совместной работы.
Фиг.6 - это блок-схема, иллюстрирующая типовое общее окружение компьютера.
Подробное описание
Способы и системы, описанные ниже, относятся к сеансам совместной работы и обработке операций медиавоспроизведения в сеансах совместной работы. Сеансы совместной работы могут обеспечить дистанционное взаимодействие между клиентским компьютером (в дальнейшем «клиентом») и серверным компьютером (в дальнейшем «сервером»). Совместная работа может подразумевать представление части или всего серверного графического интерфейса пользователя (ГИП) на клиенте. В некоторых сценариях совместной работы медиаоперации, такие как команды медиавоспроизведения, можно обрабатывать отдельно от остального ГИП по ряду причин. Например, команды медиавоспроизведения могут обрабатываться отдельно для сохранения пропускной способности сети между сервером и клиентом. В таких случаях медиаданные могут быть перенаправлены от сервера к клиенту в необработанном или частично обработанном виде. Клиент может затем обработать медиаданные и присоединить обработанные медиаданные к остальному ГИП для создания представления серверного ГИП.
Медиаданные или медиафайлы могут сохраняться в соответствии с различными форматами, такими как форматы в соответствии с MPEG и т.д., среди прочих. Обработка медиафайлов может выполняться устройством воспроизведения медиаданных (медиаплеером), который применяет одну или более медиаплатформ, сконфигурированных для обработки формата медиафайла. Обработка медиаданных может предполагать медиаоперации, такие как команды медиавоспроизведения. Такие медиаоперации могут быть зависящими от платформы. В сценарии совместной работы клиент и сервер могут поддерживать или не поддерживать одинаковые медиаплатформы. Например, команды медиавоспроизведения, заданные для медиаплатформы, поддерживаемой на сервере, могут быть лишены смысла для медиаплатформы, поддерживаемой на клиенте.
Примеры осуществлений могут предоставить абстрактные выполняемые функции, разрешающие эффективно проводить медиаоперации в сеансе совместной работы между сервером и клиентом. Например, абстракция медиаопераций может облегчить исполнение пользовательской команды медиавоспроизведения в сеансе совместной работы. В таких случаях некоторые осуществления могут перевести команду медиавоспроизведения сервера, зависящую от платформы, в обобщенную команду медиавоспроизведения. Обобщенная команда медиавоспроизведения может затем быть переведена в зависящую от платформы команду медиавоспроизведения для медиаплатформы, поддерживаемой на клиенте. Клиент может затем исполнить команду медиавоспроизведения и присоединить результаты к остальному ГИП клиента.
В одном варианте осуществления медиаданные посылаются клиенту для обработки, вместо того чтобы обрабатываться на сервере, команды, зависящие от платформы, могут улавливаться на сервере. Как обсуждалось, сервер и клиент могут иметь или не иметь одинаковые платформы. Соответственно, команды, зависящие от серверной платформы, могут не быть поняты клиентом. Настоящие варианты осуществления могут облегчить эффективный обмен данными между сервером и клиентом, так что команды медиавоспроизведения пользователя являются исполнимыми на клиенте, независимо от платформ, применяемых на сервере и клиенте. Например, некоторые из настоящих осуществлений могут переводить команды, специфичные для платформы сервера, в обобщенные команды медиавоспроизведения. Обобщенные команды медиавоспроизведения могут затем посылаться клиенту. Клиент может преобразовать обобщенные команды в команды, которые являются специфичными для платформы, поддерживаемой клиентом. Платформа клиента может затем обработать команды для достижения желаемого эффекта (т.е. играть, сделать паузу, остановиться и т.д.) на клиентском устройстве.
Типовые системы
Фиг.1 иллюстрирует типовую систему 100 для осуществления сеансов совместной работы и для обработки медиаопераций в этих сеансах совместной работы. Система 100 может включать в себя сервер 102, связанный с клиентом 104 посредством сети 106. Рабочий стол 110 сервера может быть отображен на сервере 102. Аналогично, рабочий стол 112 клиента может быть отображен на клиенте 104.
Описанные осуществления находятся в контексте вычислительной среды как повсеместно встречающиеся в настоящий момент времени. Различные примеры могут быть осуществлены с помощью выполняемых компьютером команд или кодовых средств, таких как программные модули, которые выполняются компьютером, таким как персональный компьютер, или ПК. Обычно программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или внедряют конкретные абстрактные типы данных.
Различные примеры могут быть осуществлены в системных конфигурациях компьютера, помимо ПК. Например, различные варианты осуществления могут быть реализованы в портативных устройствах, мультипроцессорных системах, микропроцессорной или программируемой бытовой электронной аппаратуре, сетевых ПК, мини-компьютерах, универсальных вычислительных машинах, сотовых телефонах и т.п. Также, по мере того как технология продолжает развиваться, различные осуществления могут быть реализованы на классах устройств, которые еще предстоит обнаружить. Например, по мере того как цена единицы вычислительной мощности продолжает падать и беспроводные технологии расширяются, вычислительные устройства, напоминающие сегодняшние сотовые телефоны, смогут выполнять функции сегодняшнего ПК, видеокамеры, сотового телефона и не только, в едином мобильном устройстве. Это единое устройство может в одном сценарии действовать как сервер и в другом сценарии действовать как клиент. Это только один из многих существующих и развивающихся примеров для описанных осуществлений.
Различные примеры могут осуществляться на практике в распределенных вычислительных средах, где задачи выполняются удаленными обрабатывающими устройствами, которые связаны через сеть передачи данных. В распределенной вычислительной среде программные модули могут быть расположены как в локальных, так и в удаленных устройствах хранилищ памяти. Далее, термины «сервер» и «клиент», как они используются здесь, не соотносятся с какими-либо относительными возможностями этих двух устройств. Клиент может иметь больше, меньше или одинаковые обрабатывающие возможности, что и сервер. Точнее, в этом описании названия «сервер» и «клиент» описывают относительное соотношение этих двух компонентов. Например, вычислительная среда первого, или серверного, устройства дистанционирована ко второму, или клиентскому, устройству. Для удобства объяснения примеры, предоставленные в этом документе, относятся к одному серверу и одному клиенту; однако это только одна потенциальная конфигурация. Следует понимать, что другие осуществления могут включать в себя один или более серверов, поддерживающих многочисленных клиентов. В некоторых осуществлениях первый компьютер может действовать как сервер для второго компьютера, который действует как сервер для третьего компьютера.
Как обсуждалось, сеансы совместной работы могут обеспечить дистанционное взаимодействие между сервером 102 и клиентом 104. Совместная работа может предполагать представление части или всего серверного графического интерфейса пользователя (ГИП) на клиенте. В этом случае ГИП представляется как рабочий стол сервера 110. В частности, совместная работа может создавать впечатление, что одно или более приложений, которые запускаются на сервере 102, на самом деле запускаются на клиенте 104.
Примеры сеансов совместной работы могут включать в себя сценарии удаленных терминальных сеансов и один или более сценариев представления, в числе прочего. В сценарии удаленного терминального сеанса ГИП из области дисплея сервера (например, рабочего стола сервера 110) может быть сформирован на клиенте 104 в виде представления, или удаленного рабочего стола 114. Сценарий представления может подразумевать дистанционирование ГИП конкретного приложения, запускаемого на сервере, а не всего рабочего стола 110. В таком сценарии ГИП сервера (например, графическое окно) приложения может быть использовано для формирования представления приложения на клиенте. Например, рабочий стол сервера 110 включает в себя графическое окно медиаплеера 116. Сеанс представления может сформировать представление 118 графического окна 116 на клиенте 104 без остального рабочего стола сервера 110. Обработка медиаданных может быть выполнена на сервере 102 медиаплеером 120 посредством медиаплатформы 122, сохраненной на сервере 102. Аналогично, обработка медиаданных может быть выполнена на клиенте 104 медиаплеером 124 посредством медиаплатформы 126, сохраненной на клиенте 104.
Как обсуждалось, большая часть процессов, соответствующих сеансу совместной работы, может происходить на сервере 102; однако в сеансе совместной работы медиаоперация может, по меньшей мере частично, обрабатываться на клиенте 104. Например, команды медиавоспроизведения могут представлять один или более типов медиаопераций. Команды медиавоспроизведения, порожденные пользователем (т.е. пользовательские команды) у клиента 104, могут переадресовываться серверу 102 для обработки. Сервер 102 обрабатывает пользовательские команды в соответствии с конфигурацией сервера 102. Например, сервер 102 обрабатывает пользовательские команды, основанные на медиаплатформе 122. В таком случае обработка пользовательских команд может породить специфичные команды медиавоспроизведения, основанные на пользовательских командах, которые являются специфичными для медиаплатформы 122.
Сеанс совместной работы может перехватить зависящие от платформы команды медиавоспроизведения и может послать команды клиенту для исполнения. В некоторых случаях клиентская медиаплатформа 126 может не понять команды медиавоспроизведения, специфичные для серверной медиаплатформы 122. В связи с этим система 100 может включать в себя уровень 130 абстрагирования медиаданных совместной работы, который может облегчить медиавзаимосвязанные обмены данными между сервером 102 и клиентом 104. Например, в настоящем примере уровень 130 абстрагирования медиаданных совместной работы может абстрагировать или обобщать команды медиавоспроизведения, специфичные для медиаплатформы 122. Эти сделанные общими команды медиавоспроизведения могут затем переводиться в команды медиавоспроизведения, специфичные для клиентской медиаплатформы 126.
Соответственно, уровень 130 абстрагирования медиаданных совместной работы может облегчить исполнение пользовательских команд в сеансе совместной работы. Более того, помимо примера команд медиавоспроизведения уровень 130 абстрагирования медиаданных совместной работы может облегчить передачу медиаопераций между сервером 102 и клиентом 104 в сеансе совместной работы.
В некоторых случаях обобщенные команды медиавоспроизведения могут пониматься клиентом 104 независимо от конфигурационных различий сервера 102 и клиента 104. Например, клиент 104 и сервер 102 могут иметь различные операционные системы, различные версии одной и той же операционной системы или различные медиаплатформы, в числе прочего. Работа системы, осуществляющей управление мультимедийными операциями в сеансе совместной работы, описывается далее в деталях в сочетании с фиг.2 и фиг.3.
Фиг.2 показывает систему 200, которая основывается на принципах, введенных относительно фиг.1. В этом случае система 200 описывается относительно удаленного терминального сеанса. Следует понимать, что похожие принципы могут быть равным образом применены к другим сеансам совместной работы. В настоящем осуществлении система 200 включает в себя сервер 202 и клиента 204, которые могут обмениваться данными посредством сети 206. Сервер 202 включает в себя медиаплатформу 208 и модуль 210 абстрагирования медиаданных удаленного терминального сеанса, или «УТС». Клиент 204 включает в себя медиаплатформу 212 и модуль 214 абстрагирования медиаданных УТС.
В этом осуществлении сервер 202 может посылать данные, относящиеся к рабочему столу 216 сервера, клиенту 204 для формирования удаленного представления, такого как удаленный рабочий стол 218, у клиента 204. Данные, ассоциированные с удаленным рабочим столом 218, могут включать в себя компонент 220 пользовательского интерфейса и медиакомпонент 222.
Компонент 220 пользовательского интерфейса может включать в себя графику и изображения, которые обычно составляют пользовательский интерфейс. Компонент 220 пользовательского интерфейса может включать в себя иконки, звук хост-устройства, изображения фона и представления приложений, таких как ГИП, ассоциированные с приложениями текстообработки, приложениями для работы с электронными таблицами, приложениями базы данных, медиаприложениями и т.д. На деле любые компоненты, которые не являются медиакомпонентом 222, являются частью компонента 220 пользовательского интерфейса. При сравнении с медиакомпонентом 222 компонент 220 пользовательского интерфейса может быть относительно статичным и относительно низким по интенсивности данных. Напротив, медиакомпонент 222 может быть относительно динамичным и крайне интенсивным по данным.
Как обсуждалось, медиакомпонент 222 может быть крайне интенсивным по данным, т.к. включает в себя элементы, насыщенные медиаданными, которые составляют медиапредставление или медиасобытие. Передача данных, ассоциированных с медиакомпонентом 222, может быть интенсивной по ширине полосы пропускания. Примеры медиакомпонента 222 включают в себя, в числе прочего, потоковые медиапредставления, включающие в себя видео и/или аудиопредставление, телевизионные передачи, такие как кабельное телевидение (КАТВ), спутниковая, с разовой платой за просмотр, или вещательная программа; взаимодействия цифровых сжатых медиаданных; радиопрограммы; записанные медиасобытия (например, воспроизводимые на кассетном видеомагнитофоне, DVD-плеере, CD-плеере, персональном видеомагнитофоне и т.п.); медиасобытия в реальном времени; и каналы фотоаппартов, среди прочего.
В целях разъяснения медиакомпонент 222 иллюстрируется как на рабочем столе 216 сервера, так и на удаленном рабочем столе 218 клиента. Следует понимать, что части или весь рабочий стол 216 сервера не обязательно может быть отображен на дисплейном устройстве сервера 202. В таких вариантах осуществления только медиакомпонент 222 (или его часть) могут появиться на клиенте. Например, рабочий стол сервера может быть дистанционирован к клиенту, даже если сервер не связан с дисплейным устройством.
Данные для удаленного рабочего стола 218 могут посылаться от сервера 202 к клиенту 204 посредством сети 206. В одном из осуществлений данные, ассоциированные с компонентом 220 пользовательского интерфейса и медиакомпонентом 222, могут передаваться по каналу пользовательского интерфейса 224 и медиаканалу 226 соответственно.
Канал пользовательского интерфейса 224 может устанавливать связь компонента 220 пользовательского интерфейса с клиентом 204. В одном из осуществлений Терминальный Сервер и Терминальные Клиентские Службы, предлагаемые Корпорацией Майкрософт (Редмонд, Вашингтон), могут обеспечить типовой канал пользовательского интерфейса 224. Для передачи данных посредством канала пользовательского интерфейса 224 может быть использован удаленный протокол. Типовые протоколы и форматы данных включают в себя протоколы удаленного рабочего стола (RDP), протокол серии T-120 или HTML (язык разметки гипертекста и многие его вариации), в числе прочего. Независимая Архитектура Вычислительной системы (ICA), разработанная Системами Citrix®, предлагает другой пример, который может поддерживать удаленный терминальный сеанс.
Медиаканал 226 может быть отдельным или интегрированным с каналом пользовательского интерфейса 224. Медиаканал 226 может быть использован для передачи взаимодействий, требующих большой пропускной способности, таких как видео или другие типы медиаданных, как указано выше. В этом примере медиаканал 226 может обеспечить канал связи для того, чтобы медиакомпонент 222 протекал отдельно от компонента 220 пользовательского интерфейса. Следовательно, медиакомпонент 222 может посылаться вне полосы по отношению к компоненту пользовательского интерфейса, но синхронизованно. Типовой протокол для передачи данных посредством медиакомпонента 226 может включать в себя, в числе прочего, Протокол Управления Передачей (TCP) и виртуальный канал с помощью RDP-соединения.
Другими словами, настоящие осуществления могут разделять на два потока доставку данных, относящихся к удаленному рабочему столу. Компоненты с относительно низкой интенсивностью данных серверного рабочего стола 216, такие как компонент 220 пользовательского интерфейса, могут обрабатываться на сервере 202 и затем передаваться клиенту 204. Компоненты с относительно высокой интенсивностью данных, такие как медиакомпонент 222, могут передаваться клиенту 204 в необработанном или менее обработанном виде. Обработка затем может быть завершена клиентом 204 и объединена с компонентами данных низкой интенсивности, чтобы создать удаленный рабочий стол 218 на клиенте 204. События (т.е. медиаоперации), которые влияют на медиапредставление, могут прослеживаться на сервере, так чтобы можно было поддерживать относительное соотношение медиапредставления к другим частям удаленного рабочего стола 218.
В настоящем примере сценария компонент 220 пользовательского интерфейса объединяется, или соединяется, с медиакомпонентом 222 для формирования удаленного рабочего стола 218 у клиента 204. Пользователь у клиента 204 может удаленно управлять сервером 202, взаимодействуя с удаленным рабочим столом 218. Например, пользователь у клиента 204 может передвигать курсор мыши по приложению на удаленном рабочем столе 218 и открывать приложение, щелкая по соответствующей иконке. Таким же образом пользователь может подавать команды на приложение через удаленный рабочий стол. Например, что касается медиаприложения, пользователь может применять щелчки мыши для ввода пользовательских команд, таких как начало воспроизведения (старт), остановка воспроизведения (стоп), ускоренная перемотка вперед, перемотка, пауза и настройка уровня громкости в числе прочего. Настоящие осуществления облегчают выполнение пользовательских команд в сценарии удаленного терминального сеанса.
В целях разъяснения рассмотрим гипотетический сценарий, где пользователь у клиента 204 вводит пользовательские команды медиавоспроизведения (пользовательские команды), относящиеся к удаленному рабочему столу 218. Пользовательские команды могут передаваться от клиента 204 серверу 202 как часть удаленного терминального сеанса посредством сети 206, как указано в общем смысле в виде команд 230. Команды 230 могут посылаться через канал 224 ИП или через другой канал. Команды 230 могут перерабатываться на сервере 202 медиаплатформой 208 в медиакоманды, зависящие от платформы. Как указывалось, обработка медиаданных медиаплатформой 208 может перехватываться как часть удаленного терминального сеанса и посылаться клиенту 204 для дальнейшей обработки.
Клиентская медиаплатформа 212 может быть или не быть такой же, как серверная медиаплатформа, такая как медиаплатформа 208, и как таковая может понимать или не понимать перехваченные медиакоманды сервера 202, зависящие от платформы. Серверный модуль 210 абстрагирования УТС может принимать перехваченные медиакоманды, зависящие от платформы. Модуль 210 абстрагирования УТС может переводить перехваченные медиакоманды, специфичные для платформы, в обобщенные или отвлеченные медиакоманды. Обобщенные медиакоманды могут посылаться от серверного модуля 210 абстрагирования медиаданных УТС клиентскому модулю 214 абстрагирования медиаданных УТС, как указано в общем смысле в виде команд 232. Клиентский модуль 214 абстрагирования медиаданных УТС может переводить обобщенные медиакоманды, такие как команды 232, в медиакоманды, которые являются специфическими для клиентской медиаплатформы 212. Клиентская медиаплатформа 212 может затем исполнять клиентские специфичные медиакоманды для выполнения пользовательской команды. Более подробный пример выполнения абстрагирования медиакоманды в удаленном терминальном сеансе описывается ниже относительно фиг.3.
Фиг.3 предоставляет пример того, как система 200 может выполнить абстракцию медиаоперации, описанную выше по отношению к фиг.2. В этом случае модули 210, 214 абстрагирования медиаданных УТС на сервере 202 и клиенте 204 соответственно выполняют абстракцию медиаоперации с помощью таблиц 302, 304 отображения удаленного терминального сеанса (УТС). Например, серверный модуль 210 абстрагирования медиаданных УТС может принимать медиакоманды, которые являются специфическими для серверной медиаплатформы 208. В одном из осуществлений команды, принятые серверным модулем 210 абстрагирования медиаданных УТС, могут быть ответом на одно или более действий, которые могут быть специфическими для событий, ассоциированных с воспроизведением медиафайлов. Например, серверный модуль 210 абстрагирования медиаданных УТС может принимать команды, когда к медиафайлу принимают доступ для воспроизведения один или более пользователей на клиенте 204.
Серверный модуль 210 абстрагирования медиаданных УТС может применить таблицу 302 отображения УТС для преобразования принятых медиаопераций в обобщенные, или абстрактные, медиаоперации. Абстрагированные медиаоперации из таблицы 302 отображения УТС могут посылаться клиентскому модулю 214 абстрагирования медиаданных УТС. Клиентский модуль 214 абстрагирования медиаданных УТС может использовать другую таблицу 304 отображения УТС. Таблица 304 отображения УТС может перевести абстрагированные медиаоперации в медиаоперации, которые являются специфическими для клиентской медиаплатформы 212. Клиентская медиаплатформа 212 может затем исполнить медиаоперации.
В целях разъяснения предположим, что серверная медиаплатформа 208 является платформой Media Foundation®, в то время как клиентская медиаплатформа 212 является платформой DShow®. В этом примере таблица 302 отображения УТС может переводить операции, специфичные для платформы Media Foundation®, указанные в общем смысле на 306А-306I, в соответствующие обобщенные медиаоперации, указанные в общем смысле на 308A-308I соответственно. Аналогично, таблица 304 отображения УТС может переводить обобщенные медиаоперации, указанные в общем смысле на 310А-310I, в соответствующие операции, специфичные для платформы DShow®, указанные в общем смысле на 312A-312I. Например, предположим, что модуль 210 абстрагирования медиаданных УТС, основанный на платформе Media Foundation, принимает операцию 306A, а именно «IMFClockStateSink:: OnClockStarted» от медиаплатформы 208. Модуль 210 абстрагирования медиаданных УТС может применить таблицу 302 отображения для перевода операции 306A в обобщенную команду 308A медиаоперации, а именно «Начать Воспроизведение». Модуль 210 абстрагирования медиаданных УТС может послать обобщенную команду 308A медиаоперации «Начать Воспроизведение» модулю 214 абстрагирования медиаданных УТС на клиенте 204.
Обобщенная команда медиаоперации, такая как обобщенная команда 308A, может быть преобразована в соответствующую команду клиентской медиаплатформы 212 на основании таблицы 304 отображения УТС. Например, модуль 214 абстрагирования медиаданных УТС может расположить обобщенную команду медиаоперации «Начать Воспроизведение», принятую от сервера 202, в таблице 304 отображения УТС. В этом случае обобщенная команда медиаоперации «Начать Воспроизведение» обозначается как 310A. Таблица 304 отображения УТС может перевести обобщенную команду медиаоперации «Начать Воспроизведение» 310 в медиаоперацию «IMediaControl::Run», специфическую для платформы DShow®, обозначенную как команда 312A. Модуль 214 абстрагирования медиаданных УТС может послать медиаоперацию «IMFMediaSession::Start» 312A, специфическую для платформы DShow®, клиентской платформе 212, которая является платформой DShow®, разрешая клиентской платформе 212 понять и исполнить медиаоперацию, специфическую для DShow. Другие отображения могут быть сделаны передвижением горизонтально поперек индивидуальной строки таблиц 302, 304 отображений. Следует понимать, что таблица 302, 304 отображений УТС на сервере 202 и клиенте 204, соответственно, может включать в себя другие команды и отображения, связывающие специфичные для платформы команды с обобщенными командами и наоборот.
В одном из вариантов осуществления таблицы 302, 304 отображений УТС могут быть сконфигурированы для перевода между медиаплатформами, которые еще предстоит разработать. В то время как таблицы 302, 304 отображений УТС, проиллюстрированные здесь, включают в себя перевод между двумя специфическими медиаплатформами, другие таблицы отображения могут включать в себя многократные переводы. Например, серверными медиаплатформами 208 могут быть DShow и Media Foundation, в то время как клиентскими медиаплатформами могут быть платформа Quick Time® и платформа Ogg®. Соответственно, в некоторых осуществлениях таблицы 302, 304 отображений УТС могут обеспечить переводы между серверной медиаплатформой и клиентской медиаплатформой.
Более того, абстрагируя медиаоперации, таблицы 302, 304 отображений УТС могут быть проще, чем другие потенциальные решения. Например, серверная таблица отображения УТС 302 не обязательно может принимать во внимание все возможные медиаплатформы, которые могут применяться на клиенте 204. Другими словами, серверная медиатаблица, такая как таблица 302 отображения УТС, может быть независимой от клиентской медиаплатформы 212 (т.е. серверная медиатаблица не обязательно должна быть сконфигурирована на основе конфигурации клиентской медиаплатформы). То же самое может быть сказано о клиентской медиатаблице 212. Более того, серверная таблица 302 отображения УТС может не нуждаться в обновлениях, в то время как развиваются новые медиаплатформы, которые могут применяться на клиенте 204. Вместо этого серверная таблица 302 отображения УТС может переводить медиаоперации, такие как операции 306А-306I, специфичные для какой бы то ни было медиаплатформы, существующей на сервере 202, в соответствующие абстрактные или обобщенные медиаоперации, такие как 308А-308I. Клиентская таблица 304 отображения УТС может затем переводить обобщенные медиаоперации, такие как 308А-308, в медиаоперации, такие как операции 310А-310I, специфичные для медиаплатформ(ы) 212 на клиенте 204. Клиентская таблица 304 отображения УТС не обязательно должна принимать во внимание все различные медиаплатформы, которые применяются или могут применяться на сервере 202. Вместо этого клиентская таблица 304 отображения УТС может просто переводить из обобщенных медиаопераций 310А-310I в медиаоперации, специфичные для медиаплатформ(ы) 212, работающих на клиенте 204.
Таблицы 302, 304 отображений УТС, как показано на чертеже, представляют только одно возможное осуществление, которое может быть выполнено с использованием документа текстообработки.
Фиг.4 - это пример представления избранных компонентов системы 400 для поддержки абстрагирования медиаопераций в удаленном терминальном сеансе. Фиг.4 относится к медиакомпоненту удаленного терминального сеанса между сервером 402 и клиентом 404. В этом осуществлении сеанс терминальных служб вызывает конфигурацию протокола удаленного рабочего стола (RDP), примеры которого проиллюстрированы выше. Система 400 может в альтернативном или дополнительном порядке применяться для других сценариев совместной работы, кроме удаленных терминальных сеансов.
Сервер 400 может включать в себя первую медиаплатформу 406 и второй медиаплеер 408. Медиаплатформа 406 ассоциируется с медиаисточником 410. Медиаплатформа 406 включает в себя модуль 412 слежения за геометрией, модуль 414 абстрагирования медиаданных УТС, модуль 416 назначения и модуль 418 диспетчера распространения, который включает в себя модуль абстрагирования медиаданных УТС 420. Медиаплатформа 406 также включает в себя видеодекодер 422, модуль 424 видеоэффектов, модуль 426 воспроизведения видео, модуль 428 абстрагирования медиаданных УТС, аудиодекодер 430, модуль 432 аудиоэффектов, модуль 434 воспроизведения аудио, модуль 436 абстрагирования медиаданных УТС и аудиопередатчик 438. Сервер также включает в себя медиаплеер 440, который может связываться с медиаплатформой 406.
Клиентская медиаплатформа 408 может включать в себя модуль 442 абстрагирования медиаданных УТС, модуль 444 слежения за геометрией и мультимедийный модуль 446, который включает в себя модуль 448 абстрагирования медиаданных УТС. Клиентская медиаплатформа 408 может также включать в себя модуль 450 абстрагирования медиаданных УТС, модуль 452 аудиоприемника, аудиодекодер 454, модуль 456 аудиоэффектов и модуль 458 воспроизведения аудио. Медиаплатформа 408 может также включать в себя модуль 460 абстрагирования медиаданных УТС, видеоприемник 462, видеодекодер 464, модуль 466 видеоэффектов и модуль 468 воспроизведения видео. Клиент также включает в себя медиаплеер 470, который может связываться с медиаплатформой 408.
В этом примере серверная медиаплатформа 406 может существовать как часть операционной системы сервера (не показана), чтобы разрешать воспроизведение медиаданных, так что приложения, которые взаимодействуют с операционной системой, могут управлять воспроизведением медиаданных, «не зная» конкретных деталей форматов медиаданных. Аналогично, клиентская медиаплатформа 408 может существовать как часть клиентской операционной системы (не показана), чтобы разрешать воспроизведение медиаданных, так что приложения, которые взаимодействуют с операционной системой, могут управлять воспроизведением медиаданных без знания медиаданных. Например, медиаплатформа 406 может разрешить приложению, такому как медиаплеер 440, запускаться без того, чтобы медиаплеер 440 знал детали относительно форматов воспроизводимых медиаданных. Аналогичным образом, клиентская медиаплатформа 408 может разрешить медиаплееру 470 запускаться как часть операционной системы сервера, чтобы разрешить воспроизведение медиаданных, так что приложения, которые взаимодействуют с операционной системой, могут управлять воспроизведением медиаданных, не зная конкретных деталей медиаформатов. Медиаплатформа 406, запускающаяся на сервере 402, может быть идентична медиаплатформе 408, запускающейся на клиенте 404. В других примерах медиаплатформа 406 на сервере 402 может быть другим продуктом и/или версией, чем медиаплатформа 408, работающая на клиенте 404. Компоненты, описанные ниже, могут позволить медиаоперациям эффективно обмениваться между сервером и клиентом как в первом, так и во втором случаях.
В этом примере серверная медиаплатформа 406 может обнаружить, запускается ли она в удаленном терминальном сеансе, посредством модуля 416 назначения. Модуль 416 назначения может быть объектом, который определяет, где нужно представить представление (например, окно, дисковый файл и т.п.) и что происходит с представлением. Далее, серверная медиаплатформа 406 может определить, что источник связан с клиентом, таким как клиент 404, который имеет возможности воспроизвести медиаданные локально. Диспетчер 418 распространения может определить, что серверная медиаплатформа 406 связана с клиентом 404 и что клиент 404 имеет возможности воспроизвести медиаданные локально. Диспетчер 418 распространения может также установить политику удаленного терминального сеанса, чтобы позволить дистанционирование медиаданных клиенту 404. Диспетчер 418 распространения может установить соединение виртуального канала с мультимедийным подключаемым модулем клиента, таким как модуль 444 мультимедийного компонента на клиенте 404. Соединение виртуального канала может разрешить обмен контрольной информацией, относящейся к удаленному терминальному сеансу, между сервером 402 и клиентом 404.
Один аспект контрольной информации для обмена через соединение виртуального канала между диспетчером 418 распространения и модулем 444 мультимедийного компонента предполагает медиаоперации в удаленном терминальном сеансе. Диспетчер 418 распространения и модуль 444 мультимедийного компонента могут пользоваться своими соответствующими модулями 420, 446 абстрагирования медиаданных УТС, чтобы согласовать, как обрабатывать медиаоперации в удаленном терминальном сеансе. Один из двух - сервер 402 и клиент 404 - может инициировать согласования по медиаоперациям. В некоторых осуществлениях согласования медиаопераций могут быть предприняты как часть процедур запуска для установления удаленного терминального сеанса. В других осуществлениях согласования медиаопераций могут быть начаты в ответ на медиаоперацию, такую как пользовательская команда воспроизведения медиаданных, принимаемую в удаленном терминальном сеансе.
В качестве иллюстративного примера в ответ на пользовательскую команду воспроизведения медиаданных сервер 402 может определять медиаформат медиаданных от медиаисточника 410. Предположим в целях этого объяснения, что сервер 402 определяет, что медиаформатом источников является MPEG IV. Серверный модуль 420 абстрагирования медиаданных УТС может запросить, поддерживает ли клиент, такой как клиент 404, медиаформат MPEG IV. Например, серверный модуль 420 абстрагирования медиаданных УТС может запросить клиентский модуль 448 абстрагирования УТС, поддерживает ли клиент конкретный медиаформат, такой как MPEG IV. Пример такого запроса предоставляется в таблицах 302, 304 отображения УТС в виде обобщенной медиаоперации «проверить поддержку формата», показанной на 308E и 310E. Клиентский модуль 448 абстрагирования медиаданных УТС может послать запрос обратно, спрашивая сервер 402, какой медиаплатформой можно воспользоваться для поддержки медиаформата. Клиент 404 может затем воспользоваться информацией от сервера 402 для определения того, поддерживает ли клиент 404 этот медиаформат. Альтернативным образом, клиент 404 может определить, что он имеет медиаплатформу, такую как медиаплатформа 408, которая поддерживает медиаформат. В последнем случае клиент 404 может дать указание серверу 402 продолжить передачу потока медиаданных. Например, клиент 404 через клиентский модуль 448 абстрагирования медиаданных УТС может иметь медиаплатформу 408, которая полностью отличается от медиаплатформы 406 на сервере 402. В таких случаях перед операциями, такими как воспроизведение, пауза и т.д., в продолжение сеансов совместной работы можно выполнить проверку платформы, поддерживаемой клиентом 404. В другом случае, вместо того чтобы дожидаться сервера, клиентский модуль 448 абстрагирования медиаданных УТС может заранее проинформировать сервер 402 о возможностях, связанных с клиентом 404, относящихся к медиаформатам, поддерживаемым клиентом 404, и/или медиаплатформам, работающим на клиенте 404.
Более того, применение соединения виртуального канала разрешает диспетчеру 418 распространения и мультимедийному компоненту 446 устанавливать распределенную топологию. Распределенная топология может выполнять различные функции. Например, распределенная топология может включать в себя сетевой передатчик на сервере 402 и сетевой приемник на клиенте 404. Сетевой приемник связан, в свою очередь, с модулями 458, 468 воспроизведения аудио и/или видео соответственно на клиенте 404. В этой конкретной конфигурации видеопередатчик 472 и аудиопередатчик 438 изображены на сервере 402, в то время как соответствующий видеоприемник 462 и аудиоприемник 452 изображены на клиенте 404.
Во время сценария медиапредставления на удаленном рабочем столе медиаданные могут быть направлены клиенту 404 в необработанном или частично обработанном виде как поток. Например, на сервере 402 медиаплатформа 406 может перехватить медиаданные, которые в противном случае обрабатывались бы на сервере 402, а именно видеодекодером 422, модулем 424 видеоэффектов, модулем 438 воспроизведения видео, аудиодекодером 430, аудиоэффектами 432 и модулем 434 воспроизведения аудио. Медиаданные могут быть перенаправлены на соответствующие видео- и аудиопередатчики 472, 438 для потоковой передачи клиенту 404. Потоковая передача может быть по различным каналам. Например, медиаданные могут идти потоком в полосе с RDP по виртуальному каналу. Такая конфигурация повторно использует существующее RDP-соединение и разрешает RDP обрабатывать различные детали, от перфорации до брандмауэров, и установление безопасного, подлинного контекста, среди других задач. Альтернативным или дополнительным образом, медиаданные могут идти потоком по соединению протокола датаграмм пользователя (UDP) побочной частоты или протокола управления передачей (TCP). В некоторых осуществлениях может быть использована внеполосная конфигурация. Например, в конкретной конфигурации внеполосное соединение может быть доступно с большей полосой частот по соединению, чем доступно в соединении через RDP.
На клиенте 404 потоковые медиаданные принимаются на мультимедийном модуле 446, который, в свою очередь, передает потоковые медиаданные видео- и аудиоприемникам 462, 452 соответственно. Видео- и аудиоприемники 462, 452 соответственно передают медиаданные преобразованиям и приемникам на стороне клиента, которые включают в себя видеодекодер 464, видеоэффект 466, модуль 468 воспроизведения видео, аудиодекодер 454, аудиоэффекты 456 и модуль 458 воспроизведения аудио. Медиаданные затем декодируются и воспроизводятся на клиенте 404. Поскольку аудио и видео передаются потоком в закодированном виде, любые инструменты синхронизации, содержащиеся в закодированных медиаданных, могут быть доступны клиенту 404 для поддержания надлежащей аудиовидеосинхронизации. Для простоты объяснения необработанные медиаданные идут потоком от сервера 402 к клиенту 404.
Некоторая обработка медиаданных может происходить в других осуществлениях. Например, предположим, что в соответствии с вышеописанным сценарием удаленного рабочего стола пользователь просит воспроизвести медиаданные, которые закодированы в источнике гипотетическим кодеком АА. В этом примере источник может содержать компоненты для декодировки гипотетического кодека АА, но клиент может и не содержать; однако и источник, и клиент могут иметь возможности кодека для второго гипотетического кодекового формата BB. В таком случае источник может декодировать медиаданные и затем перекодировать медиаданные в формат ВВ перед передачей потока медиаданных клиенту 404. Это только один пример, который представляет различные уровни обработки для медиаданных, которые могут возникнуть в компонентах системы в соответствии с принципами, описанными выше и ниже.
Компонент слежения за геометрией, или модуль слежения за геометрией 412, 444, может регистрировать и отслеживать любые изменения, относящиеся к целевому окну сеанса терминальных служб. Например, модуль 412 слежения за геометрией может регистрировать уникальный идентификатор для целевого окна и отслеживать целевое окно на удаленном рабочем столе, описанном выше. Модуль 412 слежения за геометрией может отслеживать изменения, относящиеся к ограничению целевого окна другим окном, позиции целевого окна и размеру целевого окна на стороне сервера. Эти изменения затем передаются клиенту 404 протоколами удаленного рабочего стола, где изменения направляются мультимедийному модулю на стороне клиента 446.
Слежение за геометрией может быть признаком платформы, такой как платформа Terminal Services®, которая обеспечивает систему уведомления для изменений геометрии окна. Всякий раз как геометрия окна меняется, события, содержащие новую геометрию, могут генерироваться и посылаться приемникам уведомлений в источнике. В этом примере клиент действует как источник. Геометрия окна может меняться, когда окно передвигается, минимизируется/максимизируется или ограничивается другим окном.
В некоторых случаях приложение может решить воспроизвести медиаданные на клиенте, вместо того чтобы передавать пред-воспроизведенные битовые карты от сервера. Для того чтобы это сделать, приложение создает окно как на стороне сервера, так и клиента. Окно сервера действует как метка-заполнитель и способно принимать весь ввод, а фактические медиаданные могут воспроизводиться и изображаться приложением на стороне клиента. Окно клиента изображается прямо над окном сервера, чтобы распространение было прозрачно для пользователя. Поскольку весь ввод фактически действует на окно сервера, изменения геометрии будут отражаться на сервере. Приложение отслеживает эти изменения до окна сервера и соответственно обновляет окно клиента, чтобы оба окна были геометрически синхронизованы.
Пример способа(ов)
Типовые процессы для сеансов совместной работы и обработки медиаопераций в сеансах совместной работы описаны со ссылкой на фиг.1-4. Эти процессы могут быть описаны в общем контексте исполняемых компьютером команд. Как правило, исполняемые компьютером команды могут включать в себя подпрограммы, программы, объекты, компоненты, структуры данных, процедуры, модули, функции и т.п., которые выполняют конкретные функции или внедряют конкретные типы абстрактных данных. Процессы могут также применяться на практике в распределенной вычислительной среде, где функции выполняются удаленными обрабатывающими устройствами, которые связаны через сеть передачи данных. В распределенной вычислительной среде исполняемые компьютером команды могут быть расположены в запоминающих средах как локального, так и удаленного компьютера, включая устройства хранилищ памяти.
Фиг.5 иллюстрирует пример способа 500 для сеансов совместной работы и обработки операций воспроизведения медиаданных в сеансах совместной работы. Порядок, в котором описывается способ, не предназначен для того, чтобы быть истолкован как ограничение, и любое количество описанных блоков способа может быть объединено в любом порядке для осуществления способа. Более того, способ может быть осуществлен в любом пригодном оборудовании, программном обеспечении, микропрограммах или их комбинации.
В блоке 502 принимаются команды, ассоциированные с одним или более действиями, относящимися к медиафайлам. Принятые команды являются специфическими для медиаплатформы, ассоциированной с вычислительным устройством, принимающим команды. Команды могут формироваться от другого вычислительного устройства, которое может иметь доступ к медиафайлам через сеть. Например, серверный модуль 210 абстрагирования медиаданных УТС может принимать медиакоманды, которые являются специфическими для серверной медиаплатформы 208. Такие команды могут быть сформированы в ответ на определенные действия, такие как осуществление доступа к медиафайлу.
В блоке 504 принятые команды, специфичные для платформы, ассоциируются с одной или более обобщенными медиаоперациями. Обобщенные операции могут быть общими для различных приложений для воспроизведения медиафайлов. В одном осуществлении, команды, специфичные для платформы, ассоциируются с одной или более обобщенными операциями, основанными на отображении. Например, серверный модуль абстрагирования медиаданных УТС 210 может воспользоваться таблицей 302 отображения УТС для отображения принятых медиаопераций (как указано командами 306А-306I) в обобщенные, или абстрактные, медиаоперации (как указывают 308А-308I). Пример платформы, основанной на сервере 202, включает в себя, в числе прочего, Media Foundation.
В блоке 506 обобщенные операции посылаются вычислительному устройству, запрашивающему доступ к медиафайлу. Например, обобщенные операции могут передаваться клиенту 204 от сервера 202. В одном осуществлении серверный модуль 210 абстрагирования медиаданных УТС посылает обобщенные команды от сервера 202 клиенту 204.
В блоке 508 обобщенные команды принимаются запрашивающим устройством и ассоциируются с командами, специфическими для платформы. Например, клиентский модуль абстрагирования медиаданных УТС 214 принимает обобщенные команды, посланные серверным модулем 210 абстрагирования медиаданных УТС. Клиентский модуль 214 абстрагирования медиаданных УТС может применить другую таблицу 304 отображения УТС. Таблица 304 отображения УТС может перевести абстрагированные медиаоперации в медиаоперации, которые являются специфическими для клиентской медиаплатформы 212. Клиентская медиаплатформа 212 может затем исполнить медиаоперации. Примеры медиаплатформы на клиенте 204 включают в себя, в числе прочего, платформу DShow®. Следовательно, специфичные для платформы команды сервера 202 могут переводиться в команды, специфичные для платформы клиента 204, через абстракцию специфических для платформы команд, как обобщенные операции.
Пример вычислительной среды
Фиг.6 иллюстрирует типовое общее окружение 600 компьютера, которое может быть использовано для осуществления методик, описанных здесь, и которое может представлять собой, в целом или частично, описанные здесь элементы. Окружение 600 компьютера является только одним примером вычислительной среды и не предполагает рекомендовать какое-либо ограничение в отношении области применения или функциональности компьютера и сетевых архитектур. Окружение 600 компьютера также не должно толковаться как имеющая какую-либо зависимость или требование, относящиеся к какому-либо одному или комбинации компонентов, проиллюстрированных в типовом окружении 600 компьютерной среде.
Окружение 600 компьютера включает в себя основанное на вычислениях устройство общего назначения в виде компьютера 602. Компьютер 602 может быть, например, настольным компьютером, портативным компьютером, ноутбуком или компьютером лэптоп, серверным компьютером, игровой приставкой и т.д. Компоненты компьютера 602 могут включать в себя, в числе прочего, один или более процессоров, или обрабатывающих модулей 604, системную память 606 и системную шину 608, которая соединяет различные системные компоненты, включая процессор 604, с системной памятью 606.
Системная шина 608 представляет один или более из любых различных типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт и процессор, или локальную шину, использующие любую из различных шинных архитектур. В качестве примера такие архитектуры могут включать в себя шину Промышленной Стандартной Архитектуры (ISA), шину Микроканальной Архитектуры (MCA), шину Промышленного Стандарта Улучшенной Архитектуры (EISA), локальную шину Ассоциации по Стандартам в области Видеоэлектроники (VESA) и шину Соединений Периферийных Компонентов (PCI), также известную как шина расширения.
Компьютер 602 обычно включает в себя различные читаемые компьютером носители. Такими носителями могут быть любые доступные носители, которые доступны с компьютера 602, и включают в себя как энергозависимые, так и энергонезависимые носители, сменные и постоянно закрепленные носители.
Системная память 606 включает в себя читаемые компьютером носители в виде энергозависимой памяти, такой как оперативное запоминающее устройство (ОЗУ) 610, и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 612. Базовая система 614 ввода/вывода (BIOS), содержащая базовые подпрограммы, которые помогают передавать информацию между элементами внутри компьютера 602, например, во время запуска, сохраняется в ПЗУ 612 (и) иллюстрируется. ОЗУ 610 обычно содержит данные и/или программные модули, которые являются непосредственно доступными и/или с которыми в настоящее время работает обрабатывающий модуль 604.
Компьютер 602 может также включать в себя другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных. В качестве примера фиг.6 иллюстрирует жесткий диск 616 для считывания с и записи на постоянно закрепленные, энергонезависимые магнитные носители (не показаны). Более того, фиг.6 иллюстрирует магнитный дисковод 618 для считывания с и записи на сменный, энергонезависимый магнитный диск 620 (например, «гибкий диск»), кроме того, фиг.6 иллюстрирует оптический дисковод 622 для считывания с и/или записи на сменный, энергонезависимый оптический диск 624, такой как CD-ROM, DVD-ROM или другие оптические носители. Жесткий диск 616, магнитный дисковод 618 и оптический дисковод 622 - каждый подсоединен к системной шине 608 одним или более медиаинтерфейсами данных 626. В качестве альтернативы, жесткий диск 616, магнитный дисковод 618 и оптический дисковод 622 могут быть подсоединены к системной шине 608 одним или более интерфейсами (не показаны).
Дисководы и их ассоциированные носители, читаемые компьютером, обеспечивают энергонезависимое хранение читаемых компьютером команд, структур данных, программных модулей и других данных для компьютера 602. Хотя пример иллюстрирует жесткий диск 616, сменный магнитный диск 620 и сменный оптический диск 624, следует понимать, что другие типы читаемых компьютером носителей, которые могут сохранять данные, которые доступны с компьютера, такие как магнитные кассеты или другие магнитные запоминающие устройства, карты флэш-памяти, CD-ROM, универсальные цифровые диски (DVD) или другое оптическое запоминающее устройство, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ) и т.п., также могут применяться для осуществления типовой вычислительной системы и среды.
Любое количество программных модулей может храниться на жестком диске 616, магнитном диске 620, оптическом диске 624, ПЗУ 612 и/или ОЗУ 610, включая, в качестве примера, операционную систему 626, одну или более программ 628 приложений, другие программные модули 630 и программные данные 632. Каждый (модуль) из такой операционной системы 626, одной или более программ 628 приложений, других программных модулей 630 и программных данных 632 (или некоторой их комбинации) может осуществить все или часть резидентных компонентов, которые поддерживают распределенную файловую систему.
Пользователь может вводить команды и информацию в компьютер 602 через входные устройства, такие как клавиатура 634 и указательное устройство 636 (например, «мышь»). Другие входные устройства 638 (конкретно не показанные) могут включать в себя микрофон, джойстик, игровой планшет, спутниковую тарелку, последовательный порт, сканер и/или тому подобное. Эти и другие входные устройства соединяются с обрабатывающим модулем 604 посредством интерфейсов 640 ввода/вывода, которые подсоединены к системной шине 608, но могут быть соединены другим интерфейсом и шинными структурами, такими как параллельный порт, игровой порт или универсальная последовательная шина (USB).
Монитор 642 или другой тип дисплейного устройства также может соединяться с системной шиной 608 через интерфейс, такой как видеоадаптер 644. В дополнение к монитору 642 другие выходные периферические устройства могут включать в себя такие компоненты, как динамики (не показаны) и принтер 646, который может быть соединен с компьютером 602 посредством интерфейсов 640 ввода/вывода.
Компьютер 602 может работать в сетевом окружении с использованием логических связей с одним или более удаленными компьютерами, такими как основанное на вычислениях удаленное устройство 648. В качестве примера основанное на вычислениях удаленное устройство 648 может быть персональным компьютером, портативным компьютером, серверным компьютером, маршрутизатором, компьютером сети, одноранговым устройством или другим стандартным сетевым узлом, и т.п. Основанное на вычислениях удаленное устройство 648 иллюстрируется как портативный компьютер, который может включать в себя многие или все из элементов и признаков, описанных здесь по отношению к компьютеру 602.
Логические соединения между компьютером 602 и удаленным компьютером 648 изображены как локальная вычислительная сеть (LAN) 660 и общая глобальная сеть (WAN) 652. Такие сетевые среды являются обычными в офисах, широко специализированных компьютерных сетях, интранетах и Интернете.
При осуществлении в сетевой среде LAN компьютер 602 соединен с локальной сетью 660 через сетевой интерфейс или адаптер 654. При осуществлении в сетевой среде WAN компьютер 602 обычно включает в себя модем 656 или другое средство для установления связей по общей сети 652. Модем 656, который может быть внутренним или внешним к компьютеру 602, может быть связан с системной шиной 608 через интерфейсы ввода/вывода 640 или другие подходящие механизмы. Следует понимать, что проиллюстрированные сетевые соединения являются примерными и что могут применяться другие средства установления линии(й) связи между компьютерами 602 и 648.
В сетевой среде, такой как та, что проиллюстрирована вычислительной средой 600, программные модули, изображенные относительно компьютера 602, или их части могут сохраняться в удаленном устройстве хранилищ памяти. В качестве примера удаленные программы приложений 658 находятся на устройстве памяти удаленного компьютера 648. В целях иллюстрации программы приложений и другие выполняемые программные компоненты, такие как операционная система, иллюстрируются здесь в виде дискретных блоков, хотя признается, что такие программы и компоненты находятся в разные времена в разных запоминающих компонентах основанного на вычислениях устройства 602 и выполняются процессором(ами) обработки данных компьютера.
Различные модули и методики могут быть описаны здесь в общем контексте исполняемых компьютером команд, таких как программные модули, исполняемые одним или более компьютерами или другими устройствами. Как правило, программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или внедряют конкретные типы абстрактных данных. Обычно выполняемые функции программных модулей могут объединяться или распределяться по желанию в различных осуществлениях.
Осуществление этих модулей и методик может храниться или передаваться через некоторую форму читаемых компьютером носителей. Читаемые компьютером носители могут быть любыми наличными носителями, доступными для компьютера. В качестве примера, а не ограничения, читаемые компьютером носители могут содержать «компьютерные носители данных» и «коммуникационные носители».
«Компьютерные носители данных» включают в себя энергозависимые и энергонезависимые, сменные и постоянно закрепленные носители, осуществленные любым способом или технологией для хранения информации, такой как читаемые компьютером команды, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя, в числе прочего, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, или любой другой носитель, который может быть использован для хранения желаемой информации и который может быть доступен для компьютера.
В качестве альтернативы, части инфраструктуры могут быть осуществлены в оборудовании или комбинации оборудования, программного обеспечения и/или программно-аппаратного обеспечения. Например, одна или более специализированных интегральных микросхем (ASIC) или программируемых логических устройств (PLD) могут быть спроектированы или запрограммированы для осуществления одной или более частей инфраструктуры.
Заключение
Хотя осуществления для управления мультимедийными операциями в сеансе совместной работы описаны языком, конкретным для структурных признаков и/или способов, следует понимать, что предмет прилагаемой формулы изобретения не обязательно ограничивается конкретными описанными признаками или способами. Точнее, конкретные признаки и способы раскрываются как примеры осуществлений для управления мультимедийными операциями в сеансе совместной работы.
название | год | авторы | номер документа |
---|---|---|---|
СИСТЕМЫ И СПОСОБЫ ДЛЯ ПРОЕЦИРОВАНИЯ СОДЕРЖИМОГО С КОМПЬЮТЕРНЫХ УСТРОЙСТВ | 2004 |
|
RU2389067C2 |
АРХИТЕКТУРА УДАЛЕННОЙ РАБОТЫ С ГРАФИКОЙ | 2009 |
|
RU2493582C2 |
СПОСОБЫ ДЛЯ АДАПТИРОВАНИЯ ИНТЕРПРЕТИРУЮЩЕГО ВРЕМЯ ВЫПОЛНЕНИЯ ПРИЛОЖЕНИЯ ДЛЯ МНОЖЕСТВЕННЫХ КЛИЕНТОВ | 2012 |
|
RU2608472C2 |
СПОСОБЫ И СИСТЕМЫ ДЛЯ СОВМЕСТНОЙ КОНФЕРЕНЦСВЯЗИ И СОВМЕСТНОГО ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ПРИЛОЖЕНИЯ | 2012 |
|
RU2611041C9 |
АВТОМАТИЗИРОВАННОЕ ПРЕОБРАЗОВАНИЕ ОБЪЕКТА ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ И ГЕНЕРАЦИЯ КОДА | 2012 |
|
RU2604431C2 |
ВНЕДРЕНИЕ СООБЩЕНИЯ ОПИСАНИЯ СЕАНСА В СООБЩЕНИЕ ПРОТОКОЛА УПРАВЛЕНИЯ ПЕРЕДАЧЕЙ В РЕАЛЬНОМ МАСШТАБЕ ВРЕМЕНИ (RTCP) | 2004 |
|
RU2372647C2 |
КОМПОЗИЦИЯ ЛОКАЛЬНОГО ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ С УДАЛЕННО СГЕНЕРИРОВАННЫМ ИНТЕРФЕЙСОМ ПОЛЬЗОВАТЕЛЯ И АУДИОВИЗУАЛЬНЫМИ ДАННЫМИ | 2007 |
|
RU2437141C2 |
ОБНОВЛЕНИЕ ФАЙЛА МАНИФЕСТА ДЛЯ СЕТЕВОЙ ПОТОКОВОЙ ПЕРЕДАЧИ КОДИРОВАННЫХ ВИДЕОДАННЫХ | 2011 |
|
RU2558615C2 |
РАСПРЕДЕЛЯЕМАЯ, МАСШТАБИРУЕМАЯ, ПОДКЛЮЧАЕМАЯ АРХИТЕКТУРА КОНФЕРЕНЦСВЯЗИ | 2007 |
|
RU2459371C2 |
СПОСОБ И СИСТЕМА ДЛЯ ПЕРЕДАЧИ ДАННЫХ ОТ ВЕБ-СЕРВЕРА КЛИЕНТСКИМ ТЕРМИНАЛЬНЫМ УСТРОЙСТВАМ ПОСРЕДСТВОМ ЛОКАЛЬНОЙ БЕСПРОВОДНОЙ КОММУНИКАЦИОННОЙ СЕТИ | 2013 |
|
RU2527210C1 |
Изобретение относится к средствам управления мультимедийными операциями в удаленных сеансах. Технический результат заключается в повышении эффективности обмена данными между сервером и клиентом. Обеспечивают сеанс совместной работы с клиентом, имеющим клиентскую медиаплатформу, специфичную для этого клиента, при этом сеанс совместной работы включает в себя первый канал связи, в котором передаются мультимедийные данные для медиакомпонента, и второй канал связи, в котором в клиент передается компонент пользовательского интерфейса. Принимают от клиента серверные команды воспроизведения мультимедийных данных, соответствующие серверной медиаплатформе, специфичной для сервера. Переводят серверные команды воспроизведения мультимедийных данных, соответствующие серверной медиаплатформе, специфичной для сервера, в общие для платформ команды воспроизведения мультимедийных данных для передачи в клиент. Передают общие для платформ команды воспроизведения мультимедийных данных в клиент, при этом клиент переводит общие для платформ команды воспроизведения мультимедийных данных в клиентские команды воспроизведения мультимедийных данных, соответствующие клиентской медиаплатформе, специфичной для данного клиента. 3 н. и 16 з.п. ф-лы, 6 ил.
1. Выполняемый на компьютерном устройстве способ управления мультимедийными операциями в удаленных сеансах, содержащий этапы, на которых:
обеспечивают сеанс совместной работы с клиентом, имеющим клиентскую медиаплатформу, специфичную для этого клиента, при этом сеанс совместной работы включает в себя первый канал связи, в котором передаются мультимедийные данные для медиакомпонента, и второй канал связи, в котором в клиент передается компонент пользовательского интерфейса;
принимают от клиента серверные команды воспроизведения мультимедийных данных, соответствующие серверной медиаплатформе, специфичной для сервера;
переводят серверные команды воспроизведения мультимедийных данных, соответствующие серверной медиаплатформе, специфичной для сервера, в общие для платформ команды воспроизведения мультимедийных данных для передачи в клиент; и
передают общие для платформ команды воспроизведения мультимедийных данных в клиент, при этом клиент переводит общие для платформ команды воспроизведения мультимедийных данных в клиентские команды воспроизведения мультимедийных данных, соответствующие клиентской медиаплатформе, специфичной для данного клиента.
2. Способ по п.1, дополнительно содержащий этап, на котором представляют пользовательский интерфейс в клиенте в окне мультимедийного представления и отслеживают изменения в окне мультимедийного представления.
3. Способ по п.2, в котором медиаприложение реализуют как окно мультимедийного представления на компоненте пользовательского интерфейса, причем при упомянутом отслеживании присваивают уникальный идентификатор окну мультимедийного представления, при этом изменения в окне мультимедийного представления передаются в клиент, чтобы обеспечить возможность ориентации окна мультимедийного представления относительно компонента пользовательского интерфейса.
4. Способ по п.1, в котором при переводе специфичных для платформы команд воспроизведения мультимедийных данных в общие для платформ команды воспроизведения мультимедийных данных используют таблицу соответствия, которая задает соответствие специфичных для платформы команд воспроизведения мультимедийных данных общим для платформ командам воспроизведения мультимедийных данных.
5. Способ по п.1, в котором второй канал устанавливают посредством сеанса совместной работы.
6. Способ по п.1, дополнительно содержащий этапы, на котором:
определяют формат мультимедийных данных;
оценивают возможность клиента декодировать и воспроизводить мультимедийные данные в этом формате.
7. Способ по п.6, который, в случае если клиент не имеет возможности декодировать и воспроизводить мультимедийные данные в существующем формате, дополнительно содержит этап, на котором декодируют мультимедийные данные и перекодируют мультимедийные данные во второй отличающийся формат, для работы с которым клиент сконфигурирован.
8. Способ по п.1, дополнительно содержащий этапы, на которых:
устанавливают соединение виртуального канала с клиентом,
согласовывают форматы, которые поддерживаются как источником мультимедийных данных, передаваемых в клиент, так и клиентом; и
настраивают распределенную топологию с клиентом.
9. Способ по п.8, в котором при настройке распределенной топологии вводят сетевой передатчик в упомянутый источник и сетевой приемник в клиент.
10. Сервер, содержащий:
компонент пользовательского интерфейса, который включает в себя графику и изображения, которые составляют пользовательский интерфейс, причем компонент пользовательского интерфейса поддерживает связь с клиентом через первый канал связи; и
медиакомпонент, который включает в себя данные мультимедийного представления для воспроизведения через компонент пользовательского интерфейса, при этом медиакомпонент сконфигурирован переводить специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие первой медиаплатформе, поддерживаемой сервером, в общие для платформ команды воспроизведения мультимедийных данных в результате того, что клиент не может обрабатывать специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие первой медиаплатформе, или в специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие второй медиаплатформе, поддерживаемой на удаленном клиенте терминального сеанса, при этом специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие первой медиаплатформе, принимаются от клиента, и при этом клиент переводит общие для платформ команды воспроизведения мультимедийных данных в специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие второй медиаплатформе.
11. Сервер по п.10, в котором компонент пользовательского интерфейса содержит окно медиаприложения.
12. Сервер по п.11, в котором медиакомпонент сконфигурирован с возможностью быть представленным в целевом окне мультимедийного представления внутри окна медиаприложения.
13. Сервер по п.12, в котором данные мультимедийного представления отслеживаются путем слежения за целевым окном мультимедийного представления относительно окна медиаприложения.
14. Сервер по п.13, в котором упомянутое слежение содержит передачу относительной позиции целевого окна мультимедийного представления относительно окна медиаприложения в удаленный клиент.
15. Сервер по п.13, в котором упомянутое слежение содержит введение на серверный рабочий стол метки-заполнителя, которая представляет целевое окно мультимедийного представления, и отслеживание любых изменений, влияющих на метку-заполнитель.
16. Сервер по п.10, в котором медиакомпонент сконфигурирован определять, какие форматы мультимедийных данных поддерживаются удаленным клиентом.
17. Сервер по п.10, в котором медиакомпонент сконфигурирован устанавливать распределенную топологию с удаленным клиентом.
18. Сервер по п.10, в котором медиакомпонент сконфигурирован выполнять отправку и потоковую передачу данных мультимедийного представления в сеансе терминальных служб.
19. Система для управления мультимедийными операциями в удаленных сеансах, содержащая:
механизм для предоставления клиенту, который поддерживает первый медиаплеер, медиакомпонента по первому каналу связи и для предоставления компонента пользовательского интерфейса по второму каналу связи;
механизм для приема от клиента специфичных для платформы команд воспроизведения мультимедийных данных, которые соответствуют второму медиаплееру, поддерживаемому сервером, и которые сформированы в ответ на пользовательский ввод, предоставленный во время сеанса совместной работы; и
механизм для определения того, может ли клиент обрабатывать специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие второму медиаплееру, и для перевода специфичных для платформы команд воспроизведения мультимедийных данных, соответствующих второму медиаплееру, в общие для платформ команды воспроизведения мультимедийных данных в результате того, что клиент не может обрабатывать специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие второму медиаплееру, при этом клиент переводит общие для платформ команды воспроизведения мультимедийных данных в специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие первому медиаплееру, поддерживаемому клиентом.
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек | 1923 |
|
SU2007A1 |
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек | 1923 |
|
SU2007A1 |
RU 2004120266 A, 10.01.2006. |
Авторы
Даты
2014-01-20—Публикация
2009-03-06—Подача